File: char.scan.sml

package info (click to toggle)
mlton 20100608-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,980 kB
  • ctags: 69,089
  • sloc: ansic: 18,421; lisp: 2,879; makefile: 1,570; sh: 1,325; pascal: 256; asm: 97
file content (22 lines) | stat: -rw-r--r-- 604 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
val dquote = "\""
   
val _ = print (concat [Bool.toString (isSome (Char.fromString dquote)), "\n"])

val scan: string -> unit =
   fn s =>
   let
      val n = String.size s
      fun reader i =
         if i = n
            then NONE
         else SOME (String.sub (s, i), i + 1)
   in
      case Char.scan reader 0 of
         NONE => print "NONE\n"
       | SOME (c, i) => print (concat [str c, " at ", Int.toString i,
                                       " of ", Int.toString n, "\n"])
   end

val _ =
   List.app scan ["a\\ \\", "\\ \\a", "\\ \\a\\ \\", "\\ \\\\ \\a",
                  "\\ \\"]