equal
deleted
inserted
replaced
46 val kind: symbol -> kind |
46 val kind: symbol -> kind |
47 val is_letter: symbol -> bool |
47 val is_letter: symbol -> bool |
48 val is_digit: symbol -> bool |
48 val is_digit: symbol -> bool |
49 val is_quasi: symbol -> bool |
49 val is_quasi: symbol -> bool |
50 val is_blank: symbol -> bool |
50 val is_blank: symbol -> bool |
|
51 val is_block_ctrl: symbol -> bool |
51 val is_quasi_letter: symbol -> bool |
52 val is_quasi_letter: symbol -> bool |
52 val is_letdig: symbol -> bool |
53 val is_letdig: symbol -> bool |
53 val is_ident: symbol list -> bool |
54 val is_ident: symbol list -> bool |
54 val beginning: int -> symbol list -> string |
55 val beginning: int -> symbol list -> string |
55 val scanner: string -> (string list -> 'a * string list) -> symbol list -> 'a |
56 val scanner: string -> (string list -> 'a * string list) -> symbol list -> 'a |
388 fun is_letter s = kind s = Letter; |
389 fun is_letter s = kind s = Letter; |
389 fun is_digit s = kind s = Digit; |
390 fun is_digit s = kind s = Digit; |
390 fun is_quasi s = kind s = Quasi; |
391 fun is_quasi s = kind s = Quasi; |
391 fun is_blank s = kind s = Blank; |
392 fun is_blank s = kind s = Blank; |
392 |
393 |
|
394 val is_block_ctrl = member (op =) ["\\<^bsub>", "\\<^esub>", "\\<^bsup>", "\\<^esup>"]; |
|
395 |
393 fun is_quasi_letter s = let val k = kind s in k = Letter orelse k = Quasi end; |
396 fun is_quasi_letter s = let val k = kind s in k = Letter orelse k = Quasi end; |
394 fun is_letdig s = let val k = kind s in k = Letter orelse k = Digit orelse k = Quasi end; |
397 fun is_letdig s = let val k = kind s in k = Letter orelse k = Digit orelse k = Quasi end; |
395 |
398 |
396 fun is_ident [] = false |
399 fun is_ident [] = false |
397 | is_ident (c :: cs) = is_letter c andalso forall is_letdig cs; |
400 | is_ident (c :: cs) = is_letter c andalso forall is_letdig cs; |