Function: math-number-regexp
math-number-regexp is a byte-compiled function defined in
calc-yank.el.gz.
Signature
(math-number-regexp RADIX-NUM)
Documentation
Return a regexp which will match a Calc number base RADIX-NUM.
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-yank.el.gz
(defun math-number-regexp (radix-num)
"Return a regexp which will match a Calc number base RADIX-NUM."
(let* ((digit-range
(cond
;; radix 2 to 10
((and (<= 2 radix-num)
(>= 10 radix-num))
(concat "[0-"
(number-to-string (1- radix-num))
"]"))
;; radix 11
((= 11 radix-num) "[0-9aA]")
;; radix 12+
(t
(concat "[0-9"
"a-" (format "%c" (+ (- ?a 11) radix-num))
"A-" (format "%c" (+ (- ?A 11) radix-num))
"]"))))
(integer-regexp (concat digit-range "+"))
(decimal-regexp (concat digit-range "+\\." digit-range "*")))
(concat
" *\\("
;; "e" notation
"[-_+]?" decimal-regexp "[eE][-+]?[0-9]+"
"\\|"
"[-_+]?" integer-regexp "[eE][-+]?[0-9]+"
"\\|"
;; Integer+fractions
"[-_+]?" integer-regexp "*[:/]" integer-regexp "[:/]" integer-regexp
"\\|"
;; Fractions
"[-_+]?" integer-regexp "[:/]" integer-regexp
"\\|"
;; Decimal point
"[-_+]?" decimal-regexp
"\\|"
;; Integers
"[-_+]?" integer-regexp
"\\) *\\(\n\\|\\'\\)")))