21 lines
702 B
Text
21 lines
702 B
Text
def show_chars : nat → string → string.utf8_pos → io unit
|
||
| 0 _ _ := pure ()
|
||
| (n+1) s idx :=
|
||
unless (s.utf8_at_end idx) $
|
||
io.println (">> " ++ to_string (s.utf8_get idx)) *>
|
||
show_chars n s (s.utf8_next idx)
|
||
|
||
def main : io uint32 :=
|
||
let s₁ := "hello α_world_β" in
|
||
let b := string.utf8_begin in
|
||
let e := s₁.utf8_byte_size in
|
||
io.println (s₁.extract b e) *>
|
||
io.println (s₁.extract (b+2) e) *>
|
||
io.println (s₁.extract (b+2) (e-1)) *>
|
||
io.println (s₁.extract (b+2) (e-2)) *>
|
||
io.println (s₁.extract (b+7) e) *>
|
||
io.println (s₁.extract (b+8) e) *>
|
||
io.println (to_string e) *>
|
||
io.println (repr " aaa ".trim) *>
|
||
show_chars s₁.utf8_byte_size.to_nat s₁ 0 *>
|
||
pure 0
|