File: libats_dynarray.dats

package info (click to toggle)
ats2-lang 0.4.2-3
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 40,500 kB
  • sloc: ansic: 389,898; makefile: 7,136; javascript: 1,852; lisp: 811; sh: 657; php: 573; python: 387; perl: 365
file content (95 lines) | stat: -rw-r--r-- 2,349 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
(*
** 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<T> (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] *)