equal
deleted
inserted
replaced
20 val is_letter: symbol -> bool |
20 val is_letter: symbol -> bool |
21 val is_digit: symbol -> bool |
21 val is_digit: symbol -> bool |
22 val is_quasi_letter: symbol -> bool |
22 val is_quasi_letter: symbol -> bool |
23 val is_letdig: symbol -> bool |
23 val is_letdig: symbol -> bool |
24 val is_blank: symbol -> bool |
24 val is_blank: symbol -> bool |
|
25 val is_symbolic: symbol -> bool |
25 val is_printable: symbol -> bool |
26 val is_printable: symbol -> bool |
26 val length: symbol list -> int |
27 val length: symbol list -> int |
27 val beginning: symbol list -> string |
28 val beginning: symbol list -> string |
28 val scan: string list -> symbol * string list |
29 val scan: string list -> symbol * string list |
29 val scanner: string -> (symbol list -> 'a * symbol list) -> symbol list -> 'a |
30 val scanner: string -> (symbol list -> 'a * symbol list) -> symbol list -> 'a |
90 | "\160" => true | "\\<spacespace>" => true |
91 | "\160" => true | "\\<spacespace>" => true |
91 | _ => false; |
92 | _ => false; |
92 |
93 |
93 val is_letdig = is_quasi_letter orf is_digit; |
94 val is_letdig = is_quasi_letter orf is_digit; |
94 |
95 |
|
96 fun is_symbolic s = |
|
97 size s > 2 andalso nth_elem_string (2, s) <> "^"; |
|
98 |
95 fun is_printable s = |
99 fun is_printable s = |
96 size s = 1 andalso ord space <= ord s andalso ord s <= ord "~" orelse |
100 size s = 1 andalso ord space <= ord s andalso ord s <= ord "~" orelse |
97 size s > 2 andalso nth_elem_string (2, s) <> "^"; |
101 is_symbolic s; |
|
102 |
98 |
103 |
99 fun sym_length ss = foldl (fn (n, s) => if is_printable s then n + 1 else n) (0, ss); |
104 fun sym_length ss = foldl (fn (n, s) => if is_printable s then n + 1 else n) (0, ss); |
100 |
105 |
101 |
106 |
102 (* beginning *) |
107 (* beginning *) |