src/Pure/Syntax/lexicon.ML
changeset 24630 351a308ab58d
parent 24583 d77e4d48e497
child 26007 3760d3ff4cce
equal deleted inserted replaced
24629:65947eb930fa 24630:351a308ab58d
    27   val const: string -> term
    27   val const: string -> term
    28   val free: string -> term
    28   val free: string -> term
    29   val var: indexname -> term
    29   val var: indexname -> term
    30   val read_nat: string -> int option
    30   val read_nat: string -> int option
    31   val read_int: string -> int option
    31   val read_int: string -> int option
    32   val read_xnum: string -> {radix: int, leading_zeros: int, value: IntInf.int}
    32   val read_xnum: string -> {radix: int, leading_zeros: int, value: int}
    33   val read_idents: string -> string list
    33   val read_idents: string -> string list
    34   val fixedN: string
    34   val fixedN: string
    35   val constN: string
    35   val constN: string
    36 end;
    36 end;
    37 
    37 
   400       (case Symbol.explode (perhaps (try (unprefix "#")) str) of
   400       (case Symbol.explode (perhaps (try (unprefix "#")) str) of
   401         "0" :: "x" :: cs => (1, 16, map remap_hex cs)
   401         "0" :: "x" :: cs => (1, 16, map remap_hex cs)
   402       | "0" :: "b" :: cs => (1, 2, cs)
   402       | "0" :: "b" :: cs => (1, 2, cs)
   403       | "-" :: cs => (~1, 10, cs)
   403       | "-" :: cs => (~1, 10, cs)
   404       | cs => (1, 10, cs));
   404       | cs => (1, 10, cs));
   405     val value = IntInf.fromInt sign * #1 (Library.read_intinf radix digs);
   405     val value = sign * #1 (Library.read_radix_int radix digs);
   406   in {radix = radix, leading_zeros = leading_zeros digs, value = value} end;
   406   in {radix = radix, leading_zeros = leading_zeros digs, value = value} end;
   407 
   407 
   408 end;
   408 end;
   409 
   409 
   410 
   410