src/Pure/General/symbol.ML
changeset 47850 c638127b4653
parent 43947 9b00f09f7721
child 48704 85a3de10567d
equal deleted inserted replaced
47849:48b52cdc214a 47850:c638127b4653
    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;