/***********************************************************************/
/*                                                                     */
/*                        Applied Type System                          */
/*                                                                     */
/*                             Hongwei Xi                              */
/*                                                                     */
/***********************************************************************/

/*
**
** This file is to be preprocessed to generate .libfiles_local, which is
** needed by [atslib] for building libats.a
**
*/

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

#include "config.h"

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

prelude/basics_sta.sats
prelude/basics_dyn.sats
prelude/ats_main_prelude.dats

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

/* PRELUDE files */

/* ****** ****** */
/*
** primary
*/
//
prelude/DATS/basics.dats
//
prelude/DATS/bool.dats
prelude/DATS/char.dats
//
prelude/DATS/integer.dats
prelude/DATS/sizetype.dats
//
prelude/DATS/float.dats
//
prelude/DATS/pointer.dats
//
prelude/DATS/reference.dats
//
prelude/DATS/string.dats
//
prelude/SATS/lazy.sats
prelude/DATS/lazy.dats
//
prelude/SATS/lazy_vt.sats
prelude/DATS/lazy_vt.dats
//
prelude/DATS/printf.dats
prelude/DATS/filebas.dats
//
prelude/SATS/extern.sats /* for building external API's */
//
/* ****** ****** */
/*
** secondary
*/
prelude/SATS/arith.sats
prelude/DATS/arith.dats
//
prelude/SATS/array.sats
prelude/DATS/array.dats
prelude/DATS/array_prf.dats
prelude/SATS/array0.sats
prelude/DATS/array0.dats
//
prelude/SATS/list.sats
prelude/DATS/list.dats
prelude/SATS/list_vt.sats
prelude/DATS/list_vt.dats
prelude/SATS/list0.sats
prelude/DATS/list0.dats
//
prelude/SATS/dlist_vt.sats
prelude/DATS/dlist_vt.dats
//
prelude/SATS/matrix.sats
prelude/DATS/matrix.dats
prelude/SATS/matrix0.sats
prelude/DATS/matrix0.dats
//
prelude/SATS/number.sats
/*
prelude/HATS/number_hats.dats
*/
//
prelude/SATS/option.sats
prelude/DATS/option.dats
prelude/SATS/option_vt.sats
prelude/DATS/option_vt.dats
prelude/SATS/option0.sats
prelude/DATS/option0.dats
//
prelude/SATS/ptrarr.sats
prelude/DATS/ptrarr.dats
//
prelude/SATS/syndef.sats
prelude/DATS/syndef.dats
//
prelude/SATS/unsafe.sats
prelude/DATS/unsafe.dats
//

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

/* LIBC files */

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

#ifdef HAVE_COMPLEX_H
libc/SATS/complex.sats
libc/DATS/complex.dats
#endif

libc/SATS/ctype.sats

#ifdef HAVE_CURSES_H
libc/SATS/curses.sats
#endif

libc/SATS/dirent.sats
libc/DATS/dirent.dats

libc/SATS/dlfcn.sats
libc/DATS/dlfcn.dats

libc/SATS/errno.sats

libc/SATS/fcntl.sats
libc/DATS/fcntl.dats

#ifdef HAVE_GMP_H
libc/SATS/gmp.sats
libc/DATS/gmp.dats
#endif

libc/SATS/grp.sats

libc/SATS/math.sats
libc/DATS/math.dats
libc/SATS/float.sats

libc/SATS/netdb.sats

libc/SATS/printf.sats
libc/DATS/printf.dats

libc/SATS/pwd.sats

libc/SATS/random.sats -D_XOPEN_SOURCE
libc/DATS/random.dats -D_XOPEN_SOURCE

libc/SATS/sched.sats

libc/SATS/signal.sats

libc/SATS/stdarg.sats
/*
libc/DATS/stdarg.dats
*/

libc/SATS/stdio.sats
libc/DATS/stdio.dats

libc/SATS/stdlib.sats
libc/DATS/stdlib.dats

libc/SATS/string.sats
libc/DATS/string.dats

libc/SATS/strings.sats

libc/SATS/time.sats

libc/SATS/termios.sats

libc/SATS/unistd.sats
libc/SATS/unistd_pathconf.sats
libc/SATS/unistd_sysconf.sats
libc/DATS/unistd.dats

libc/SATS/utime.sats

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

libc/sys/SATS/select.sats

libc/sys/SATS/sockaddr.sats

libc/sys/SATS/socket.sats
libc/sys/DATS/socket.dats

libc/sys/SATS/socket_in.sats
libc/sys/DATS/socket_in.dats

libc/sys/SATS/socket_un.sats
libc/sys/DATS/socket_un.dats

libc/sys/SATS/stat.sats
libc/sys/DATS/stat.dats

libc/sys/SATS/statvfs.sats

libc/sys/SATS/time.sats

libc/sys/SATS/types.sats

libc/sys/SATS/un.sats

libc/sys/SATS/utsname.sats

libc/sys/SATS/wait.sats

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

libc/arpa/SATS/inet.sats

libc/netinet/SATS/in.sats

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

/*
libc/dynloadall.dats
*/

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

/* LIBATS files */

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

/* biarray (bidirectional array) implementation */
libats/SATS/biarray.sats
libats/DATS/biarray.dats

/* bimatrix (bidirectional matrix) implementation */
libats/SATS/bimatrix.sats
libats/DATS/bimatrix.dats

/* FORTRAN matrix: column-major */
libats/SATS/fmatrix.sats
libats/DATS/fmatrix.dats

/* FREE LIST implementation */
libats/SATS/freelst.sats
libats/DATS/freelst.dats

/* functional array implementation based on Braun trees */
libats/SATS/funarray_braun.sats
libats/DATS/funarray_braun.dats

/* functional deque implementation based on finger trees */
libats/SATS/fundeque_fingertree.sats
libats/DATS/fundeque_fingertree.dats

/* functional heap implementation based on Braun trees */
libats/SATS/funheap_braun.sats
libats/DATS/funheap_braun.dats

/* functional heap implementation based on binomial trees */
libats/SATS/funheap_binomial.sats
libats/DATS/funheap_binomial.dats

/* functional map implementation based on AVL trees */
libats/SATS/funmap_avltree.sats
libats/DATS/funmap_avltree.dats

/* functional map implementation based on red-black trees */
libats/SATS/funmap_rbtree.sats
libats/DATS/funmap_rbtree.dats

/* functional set implementation based on AVL trees */
libats/SATS/funset_avltree.sats
libats/DATS/funset_avltree.dats

/* functional set implementation based on ordered lists */
libats/SATS/funset_listord.sats
libats/DATS/funset_listord.dats

/* functional mset implementation based on ordered lists */
libats/SATS/funmset_listord.sats
libats/DATS/funmset_listord.dats

/* functional random-access list based on a nested datatype */
libats/SATS/funralist_nested.sats
libats/DATS/funralist_nested.dats

/*
//
// HX-2010-12-28: should these be included?
//
libats/SATS/gfarray.sats
libats/DATS/gfarray.dats
libats/SATS/gflist.sats
libats/DATS/gflist.dats
libats/SATS/gftree.sats
libats/DATS/gftree.dats
*/

/* generic arrays of various dimensions */
libats/SATS/genarrays.sats
libats/DATS/genarrays.dats

/* hashtable implementation based on separate chaining */
libats/SATS/hashtable_chain.sats
libats/DATS/hashtable_chain.dats

/* hashtable implementation based on linear probing */
libats/SATS/hashtable_linprb.sats
libats/DATS/hashtable_linprb.dats

#ifdef HAVE_GMP_H
libats/SATS/intinf.sats
libats/DATS/intinf.dats
#endif

libats/SATS/iterint.sats
libats/DATS/iterint.dats

/* linear bit vector implementation */
libats/SATS/linbitvec.sats
libats/DATS/linbitvec.dats

/* linear heap implementation based on binomial trees */
libats/SATS/linheap_binomial.sats
libats/DATS/linheap_binomial.dats

/* linear map implementation based on AVL trees */
libats/SATS/linmap_avltree.sats
libats/DATS/linmap_avltree.dats

/* linear map implementation based on red-black trees */
libats/SATS/linmap_rbtree.sats
libats/DATS/linmap_rbtree.dats

/* linear map implementation based on skip-lists */
libats/SATS/linmap_skiplist.sats
libats/DATS/linmap_skiplist.dats

/* linear set implementation based on AVL trees */
libats/SATS/linset_avltree.sats
libats/DATS/linset_avltree.dats

/* linear set implementation based on ordered lists */
libats/SATS/linset_listord.sats
libats/DATS/linset_listord.dats

/*
** linear ordset implementation based on randomized bstrees
** note that the flag __USE_MISC needs to be set in order to
** gain access to the type 'struct drand48_data'
*/
libats/SATS/linordset_randbst.sats -D_XOPEN_SOURCE -D_BSD_SOURCE
libats/DATS/linordset_randbst.dats -D_XOPEN_SOURCE -D_BSD_SOURCE

/* linear array-based queue implementation */
libats/SATS/linqueue_arr.sats
libats/DATS/linqueue_arr.dats

/* linear list-based queue implementation */
libats/SATS/linqueue_lst.sats
libats/DATS/linqueue_lst.dats

/* linear array-based stack implementation */
libats/SATS/linstack_arr.sats
libats/DATS/linstack_arr.dats

/* rarray (reversed array) implementation */
libats/SATS/rarray.sats
libats/DATS/rarray.dats

/* reference counting (effectful) implementation */
libats/SATS/refcount.sats
libats/DATS/refcount.dats
/* reference counting (reentrant) implementation */
/*
libats/SATS/refcountr.sats
libats/DATS/refcountr.dats
*/

#ifdef HAVE_PCRE_H
libats/SATS/regexp.sats
libats/DATS/regexp.dats
#endif

/* dynamically resizable array implementation */
libats/SATS/vector.sats
libats/DATS/vector.dats

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

/* linear array-based queue implementation */
libats/ngc/SATS/deque_arr.sats
libats/ngc/DATS/deque_arr.dats

/* linear singly-linked lists */
libats/ngc/SATS/slist.sats
libats/ngc/DATS/slist.dats

/*
** AS-2011:
** linear doubly-linked lists
*/
libats/ngc/SATS/dlist.sats
libats/ngc/DATS/dlist.dats

/*
** AS-2012-01:
** linear avltree-based maps
*/
libats/ngc/SATS/linmap_avltree.sats
libats/ngc/DATS/linmap_avltree.dats
/*
** AS-2012-02:
** linear pavltree-based maps
*/
libats/ngc/SATS/linmap_pavltree.sats
libats/ngc/DATS/linmap_pavltree.dats

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

/*
libats/dynloadall.dats
*/

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

/* end of [.libfiles] */
