equal
deleted
inserted
replaced
26 val token_kind_ord: token_kind * token_kind -> order |
26 val token_kind_ord: token_kind * token_kind -> order |
27 datatype token = Token of token_kind * string * Position.range |
27 datatype token = Token of token_kind * string * Position.range |
28 val kind_of_token: token -> token_kind |
28 val kind_of_token: token -> token_kind |
29 val str_of_token: token -> string |
29 val str_of_token: token -> string |
30 val pos_of_token: token -> Position.T |
30 val pos_of_token: token -> Position.T |
|
31 val tokens_match_ord: token * token -> order |
31 val is_proper: token -> bool |
32 val is_proper: token -> bool |
32 val mk_eof: Position.T -> token |
33 val mk_eof: Position.T -> token |
33 val eof: token |
34 val eof: token |
34 val is_eof: token -> bool |
35 val is_eof: token -> bool |
35 val stopper: token Scan.stopper |
36 val stopper: token Scan.stopper |
142 |
143 |
143 fun kind_of_token (Token (k, _, _)) = k; |
144 fun kind_of_token (Token (k, _, _)) = k; |
144 fun str_of_token (Token (_, s, _)) = s; |
145 fun str_of_token (Token (_, s, _)) = s; |
145 fun pos_of_token (Token (_, _, (pos, _))) = pos; |
146 fun pos_of_token (Token (_, _, (pos, _))) = pos; |
146 |
147 |
|
148 fun tokens_match_ord toks = |
|
149 (case apply2 kind_of_token toks of |
|
150 (Literal, Literal) => fast_string_ord (apply2 str_of_token toks) |
|
151 | kinds => token_kind_ord kinds); |
|
152 |
147 val is_proper = kind_of_token #> (fn Space => false | Comment _ => false | _ => true); |
153 val is_proper = kind_of_token #> (fn Space => false | Comment _ => false | _ => true); |
148 |
154 |
149 |
155 |
150 (* stopper *) |
156 (* stopper *) |
151 |
157 |