On Fri, Nov 9, 2018 at 5:38 PM Chris Double <[email protected]> wrote:
> I think for the same reason described here:
> https://groups.google.com/d/msg/ats-lang-users/GLsPNt-aDzM/7AzKnaFzwr0J
>
> '||' is a macro and not given a dependent type.
I try to just write `if (bytes' > len + index)` as following:
```
if ($UN.cast{int}{char} c < 0xc0)
then 1U else
let
(* Ok, it's 11xxxxxx, do a stupid decode *)
val (mask, bytes') = loop1 (c, 0x20U, 0x2U)
in
(* Invalid? Do it as a single byte Latin1 *)
if (bytes' > len + index)
then 1U
else
let
(* Ok, do the bytes *)
val value = loop2 (line, index, len, bytes', 1U,
($UN.cast{uint}{char} c) land (mask - 1U))
```
But above causes following error:
```
$ make
ATS utf8.dats.c
/home/kiwamu/src/uemacs-bohai/DATS/utf8.dats: 2179(line=63, offs=30)
-- 2179(line=63, offs=30): error(3): unsolved constraint:
C3NSTRprop(C3TKmain(); S2Eapp(S2Ecst(<=); S2Eapp(S2Ecst(+);
S2EVar(5287->S2Evar(i$3343(8455))),
S2EVar(5286->S2Evar(n$8684$8685(14342)))),
S2EVar(5289->S2Evar(m$3344(8456)))))
typechecking has failed: there are some unsolved constraints: please
inspect the above reported error message(s) for information.
exit(ATS): uncaught exception:
_2home_2kiwamu_2src_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn(1025)
```
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 [email protected].
To post to this group, send email to [email protected].
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/CAEvX6dkbDJu1TumPn-zwT-50USCPbg25Zhmcqz-05R9jfE8kKQ%40mail.gmail.com.