src/Pure/General/symbol.ML
changeset 16138 727c5e32930e
parent 16002 e0557c452138
child 17063 502105583951
equal deleted inserted replaced
16137:00e9ca1e7261 16138:727c5e32930e
    37   val is_digit: symbol -> bool
    37   val is_digit: symbol -> bool
    38   val is_quasi: symbol -> bool
    38   val is_quasi: symbol -> bool
    39   val is_blank: symbol -> bool
    39   val is_blank: symbol -> bool
    40   val is_quasi_letter: symbol -> bool
    40   val is_quasi_letter: symbol -> bool
    41   val is_letdig: symbol -> bool
    41   val is_letdig: symbol -> bool
       
    42   val is_ident: symbol list -> bool
    42   val beginning: int -> symbol list -> string
    43   val beginning: int -> symbol list -> string
    43   val scanner: string -> (string list -> 'a * string list) -> symbol list -> 'a
    44   val scanner: string -> (string list -> 'a * string list) -> symbol list -> 'a
    44   val scan_id: string list -> string * string list
    45   val scan_id: string list -> string * string list
    45   val scan: string list -> symbol * string list
    46   val scan: string list -> symbol * string list
    46   val source: bool -> (string, 'a) Source.source ->
    47   val source: bool -> (string, 'a) Source.source ->
   351 fun is_blank s = kind s = Blank;
   352 fun is_blank s = kind s = Blank;
   352 
   353 
   353 fun is_quasi_letter s = let val k = kind s in k = Letter orelse k = Quasi end;
   354 fun is_quasi_letter s = let val k = kind s in k = Letter orelse k = Quasi end;
   354 fun is_letdig s = let val k = kind s in k = Letter orelse k = Digit orelse k = Quasi end;
   355 fun is_letdig s = let val k = kind s in k = Letter orelse k = Digit orelse k = Quasi end;
   355 
   356 
       
   357 fun is_ident [] = false
       
   358   | is_ident (c :: cs) = is_letter c andalso forall is_letdig cs;
       
   359 
   356 
   360 
   357 
   361 
   358 (** symbol input **)
   362 (** symbol input **)
   359 
   363 
   360 (* scanning through symbols *)
   364 (* scanning through symbols *)