Function: parseclj-lex-number
parseclj-lex-number is a byte-compiled function defined in
parseclj-lex.el.
Signature
(parseclj-lex-number)
Documentation
Consume a number and return a :number token representing it.
Source Code
;; Defined in ~/.emacs.d/elpa/parseclj-20231203.1905/parseclj-lex.el
(defun parseclj-lex-number ()
"Consume a number and return a `:number' token representing it."
(let ((pos (point)))
(parseclj-lex-skip-number)
;; 10110r2 or 4.3e+22
(when (member (char-after (point)) '(?E ?e ?r))
(right-char))
(parseclj-lex-skip-number)
;; trailing M
(when (eq (char-after (point)) ?M)
(right-char))
;; trailing N clojure.lang.BigInt
(when (eq (char-after (point)) ?N)
(right-char))
;; clojure.lang.Ratio
(when (eq (char-after (point)) ?/)
(right-char)
(parseclj-lex-skip-number))
(let ((char (char-after (point))))
(if (and char (or (and (<= ?a char) (<= char ?z))
(and (<= ?A char) (<= char ?Z))
(and (member char '(?. ?* ?+ ?! ?- ?_ ?? ?$ ?& ?= ?< ?> ?/)))))
(progn
(right-char)
(parseclj-lex-error-token pos :invalid-number-format))
(parseclj-lex-token :number
(buffer-substring-no-properties pos (point))
pos)))))