This package contains common functions for processing linear strings.
praxi
lemma_strptr_param
{l:addr} (x: !strptr l): [l>=null] void
praxi
lemma_strnptr_param
{l:addr}{n:int}
(
x: !strnptr (l, n)
) : [(l>null&&n>=0) || (l==null&&n==(~1))] void
castfn
strptr2ptr
{l:addr}(x: !strptr l):<> ptr (l)
castfn
strnptr2ptr
{l:addr}{n:int}(x: !strnptr(l, n)):<> ptr(l)
castfn
strptr2strnptr
{l:addr}(x: strptr(l)):<> [n:int] strnptr(l, n)
castfn
strnptr2strptr
{l:addr}{n:int}(x: strnptr(l, n)):<> strptr(l)
castfn
strptr2string(x: Strptr1):<> String
castfn
strnptr2string
{l:addr}{n:nat}(x: strnptr(l, n)):<> string(n)
castfn
strptr2stropt
{l:addr}
(
x: strptr (l)
) :<>
[n:int
|(l==null&&n < 0)||(l>null&&n>=0)
] stropt(n)
castfn
strnptr2stropt
{l:addr}{n:int}
(x: strnptr(l, n)):<> stropt(n)
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 lt_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun lte_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun gt_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun gte_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun eq_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun neq_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> bool = "mac#%"
fun compare_strptr_strptr
(x1: !Strptr0, x2: !Strptr0):<> Sgn = "mac#%"
fun print_strptr (x: !Strptr0): void = "mac#%"
fun prerr_strptr (x: !Strptr0): void = "mac#%"
fun
fprint_strptr
(
out: FILEref, x: !Strptr0
) : void = "mac#%"
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{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
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{tk:tk}
strnptr_set_at_gint
{n:int}{i:nat | i < n}
(str: !strnptr(n), i: g1int(tk, i), c: charNZ):<!wrt> void
fun{tk:tk}
strnptr_set_at_guint
{n:int}{i:nat | i < n}
(str: !strnptr(n), i: g1uint(tk, i), c: charNZ):<!wrt> void
fun{}
strptr_length (x: !Strptr0):<> ssize_t
fun{}
strnptr_length {n:int} (x: !strnptr n):<> ssize_t (n)
fun{}
strptr_append
(x1: !Strptr0, x2: !Strptr0):<!wrt> Strptr0
fun{}
strnptr_append{n1,n2:nat}
(x1: !strnptr n1, x2: !strnptr n2):<!wrt> strnptr(n1+n2)
fun{}
strptrlst_concat (xs: List_vt(Strptr0)):<!wrt> 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)
// staload UN = "prelude/SATS/unsafe.sats" // fun strnptr_upperize {n:nat} (str: !strnptr n): void = let // implement(env) strnptr_foreach$fwork<env> (c, env) = c := $UN.cast{charNZ}(toupper_char(c)) // val _(*n*) = strnptr_foreach (str) // in // nothing end // end of [strnptr_upperize]
fun{
env:vt0p
} strnptr_foreach_env
{n:nat} (str: !strnptr n, env: &(env) >> _): sizeLte(n)
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)
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 < with lt_strptr_strptr
overload <= with lte_strptr_strptr
overload > with gt_strptr_strptr
overload >= with gte_strptr_strptr
overload = with eq_strptr_strptr
overload = with eq_strptr_string
overload != with neq_strptr_strptr
overload != with neq_strptr_string
overload
compare with compare_strptr_strptr
overload
compare with compare_strptr_string
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 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 print with print_strbuf
overload prerr with prerr_strptr
overload prerr with prerr_strbuf
overload fprint with fprint_strptr
overload fprint with fprint_strbuf
This page is created with ATS by Hongwei Xi and also maintained by Hongwei Xi. |