equal
deleted
inserted
replaced
291 fun nat n [] = n |
291 fun nat n [] = n |
292 | nat n (c :: cs) = nat (n * 10 + (ord c - ord "0")) cs; |
292 | nat n (c :: cs) = nat (n * 10 + (ord c - ord "0")) cs; |
293 |
293 |
294 fun idxname cs ds = (implode (rev cs), nat 0 ds); |
294 fun idxname cs ds = (implode (rev cs), nat 0 ds); |
295 fun chop_idx [] ds = idxname [] ds |
295 fun chop_idx [] ds = idxname [] ds |
|
296 | chop_idx (cs as (_ :: "\\<^sub>" :: _)) ds = idxname cs ds |
296 | chop_idx (cs as (_ :: "\\<^isub>" :: _)) ds = idxname cs ds |
297 | chop_idx (cs as (_ :: "\\<^isub>" :: _)) ds = idxname cs ds |
297 | chop_idx (cs as (_ :: "\\<^isup>" :: _)) ds = idxname cs ds |
298 | chop_idx (cs as (_ :: "\\<^isup>" :: _)) ds = idxname cs ds |
298 | chop_idx (c :: cs) ds = |
299 | chop_idx (c :: cs) ds = |
299 if Symbol.is_digit c then chop_idx cs (c :: ds) |
300 if Symbol.is_digit c then chop_idx cs (c :: ds) |
300 else idxname (c :: cs) ds; |
301 else idxname (c :: cs) ds; |