Hi all,

I create an utility to generate ATS interface from C code. It's useful
to create application rapidly.

  http://metasepi.org/en/posts/2016-09-17-c2ats.html

The utility generates ATS's sats file importing from C language
header, semi-automatically.

If you have following header:

```
$ vi example.h
#include <stdio.h>
```

then you can get the sats file using c2ats:

```
$ c2ats gen example.h > example.sats
$ wc -l example.sats
318 example.sats
$ grep _printf example.sats
fun fun_c2ats_printf: {l1:addr} (!ptr_v_1(char, l1) | ptr l1) -> int =
"mac#printf"
```

Now you can create ATS application using the example.sats:

```
$ vi main.dats
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"

staload UN = "prelude/SATS/unsafe.sats"

staload "example.sats"

fun my_printf (s: string): void = {
  val p = string2ptr s
  val (pfat, fpfat | p) = $UN.ptr_vtake p
  val ret = fun_c2ats_printf (pfat | p)
  prval () = fpfat pfat
}

implement main0 () = {
  val s = "Hello, world!\n"
  val () = my_printf s
}
$ patscc main.dats
$ ./a.out
Hello, world!
```

More detail and usage is found at following:

  https://github.com/metasepi/c2ats

Best regards,
-- 
Kiwamu Okabe at METASEPI DESIGN

-- 
You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ats-lang-users+unsubscr...@googlegroups.com.
To post to this group, send email to ats-lang-users@googlegroups.com.
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/CAEvX6dk%2BZ%3D_38P-MxSzKBxjPuvZ6wPf8ukwvA2axHiDS4on%2B7g%40mail.gmail.com.

Reply via email to