src/Pure/Syntax/lexicon.ML
changeset 64275 ac2abc987cf9
parent 62819 d3ff367a16a0
child 67352 5f7f339f3d7e
equal deleted inserted replaced
64274:c8990e5feac9 64275:ac2abc987cf9
   293 local
   293 local
   294 
   294 
   295 val scan_vname =
   295 val scan_vname =
   296   let
   296   let
   297     fun nat n [] = n
   297     fun nat n [] = n
   298       | nat n (c :: cs) = nat (n * 10 + (ord c - ord "0")) cs;
   298       | nat n (c :: cs) = nat (n * 10 + (ord c - Char.ord #"0")) cs;
   299 
   299 
   300     fun idxname cs ds = (implode (rev cs), nat 0 ds);
   300     fun idxname cs ds = (implode (rev cs), nat 0 ds);
   301     fun chop_idx [] ds = idxname [] ds
   301     fun chop_idx [] ds = idxname [] ds
   302       | chop_idx (cs as (_ :: "\<^sub>" :: _)) ds = idxname cs ds
   302       | chop_idx (cs as (_ :: "\<^sub>" :: _)) ds = idxname cs ds
   303       | chop_idx (c :: cs) ds =
   303       | chop_idx (c :: cs) ds =
   369 
   369 
   370 (* read_num: hex/bin/decimal *)
   370 (* read_num: hex/bin/decimal *)
   371 
   371 
   372 local
   372 local
   373 
   373 
   374 val ten = ord "0" + 10;
   374 val ten = Char.ord #"0" + 10;
   375 val a = ord "a";
   375 val a = Char.ord #"a";
   376 val A = ord "A";
   376 val A = Char.ord #"A";
   377 val _ = a > A orelse raise Fail "Bad ASCII";
   377 val _ = a > A orelse raise Fail "Bad ASCII";
   378 
   378 
   379 fun remap_hex c =
   379 fun remap_hex c =
   380   let val x = ord c in
   380   let val x = ord c in
   381     if x >= a then chr (x - a + ten)
   381     if x >= a then chr (x - a + ten)