У меня нет полного, прямого ответа для вас, но вот пара библиотек, в которых вы можете найти идеи для реализации этого самостоятельно.Часть вопроса зависит только от того, как вы хотите отобразить / вернуть число.
Если для распознаваемого текста используется стандартная форма Emacs для осевого и числового значений в этом осевом, то вы можете определить radix-number-at-point
.Эта форма документирована в руководстве Elisp, узел Основы целочисленного типа .Например, #13r90B3
- это то же число, что и десятичное целое число 19919
.
Вот краткое определение.Возможно, вы захотите настроить его.
(defun radix-number-at-point ()
"Return the radix number at point, or nil if none is found."
(when (thing-at-point-looking-at "-?#[0-9][0-9]*r[a-zA-Z0-9]+\\.?[a-zA-Z0-9]*" 500)
(read (buffer-substring-no-properties (match-beginning 0) (match-end 0)))))
Вы также можете определить функцию, которая не требует явной части #rRADIX
, например, автоматически пробовать различные радиусы, последовательно и, скажем, используя самый низкийоснование, которое возвращает число.