Mercurial > emacs
changeset 58843:f3d24ef9bf58
(math-read-replacement-list, math-read-superscripts): Move from
calc-ext.el.
(math-read-preprocess-string): Move from calc-ext.el.
author | Jay Belanger <jay.p.belanger@gmail.com> |
---|---|
date | Wed, 08 Dec 2004 06:09:20 +0000 |
parents | a26862f74305 |
children | d598b3594142 |
files | lisp/calc/calc-aent.el |
diffstat | 1 files changed, 67 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/calc/calc-aent.el Wed Dec 08 06:07:27 2004 +0000 +++ b/lisp/calc/calc-aent.el Wed Dec 08 06:09:20 2004 +0000 @@ -465,6 +465,73 @@ ;;; Algebraic expression parsing. [Public] +(defvar math-read-replacement-list + '(;; Misc symbols + ("±" "+/-") ; plus or minus + ("×" "*") ; multiplication sign + ("÷" ":") ; division sign + ("−" "-") ; subtraction sign + ("∕" "/") ; division sign + ("∗" "*") ; asterisk multiplication + ("∞" "inf") ; infinity symbol + ("≤" "<=") + ("≥" ">=") + ("≦" "<=") + ("≧" ">=") + ;; fractions + ("¼" "(1:4)") ; 1/4 + ("½" "(1:2)") ; 1/2 + ("¾" "(3:4)") ; 3/4 + ("⅓" "(1:3)") ; 1/3 + ("⅔" "(2:3)") ; 2/3 + ("⅕" "(1:5)") ; 1/5 + ("⅖" "(2:5)") ; 2/5 + ("⅗" "(3:5)") ; 3/5 + ("⅘" "(4:5)") ; 4/5 + ("⅙" "(1:6)") ; 1/6 + ("⅚" "(5:6)") ; 5/6 + ("⅛" "(1:8)") ; 1/8 + ("⅜" "(3:8)") ; 3/8 + ("⅝" "(5:8)") ; 5/8 + ("⅞" "(7:8)") ; 7/8 + ("⅟" "1:") ; 1/... + ;; superscripts + ("⁰" "0") ; 0 + ("¹" "1") ; 1 + ("²" "2") ; 2 + ("³" "3") ; 3 + ("⁴" "4") ; 4 + ("⁵" "5") ; 5 + ("⁶" "6") ; 6 + ("⁷" "7") ; 7 + ("⁸" "8") ; 8 + ("⁹" "9") ; 9 + ("⁺" "+") ; + + ("⁻" "-") ; - + ("⁽" "(") ; ( + ("⁾" ")") ; ) + ("ⁿ" "n") ; n + ("ⁱ" "i")) ; i + "A list whose elements (old new) indicate replacements to make +in Calc algebraic input.") + +(defvar math-read-superscripts + "⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁽⁾ⁿⁱ" ; 0123456789+-()ni + "A string consisting of the superscripts allowed by Calc.") + +(defun math-read-preprocess-string (str) + "Replace some substrings of STR by Calc equivalents." + (setq str + (replace-regexp-in-string (concat "[" math-read-superscripts "]+") + "^(\\&)" str)) + (let ((rep-list math-read-replacement-list)) + (while rep-list + (setq str + (replace-regexp-in-string (nth 0 (car rep-list)) + (nth 1 (car rep-list)) str)) + (setq rep-list (cdr rep-list)))) + str) + ;; The next few variables are local to math-read-exprs (and math-read-expr ;; in calc-ext.el), but are set in functions they call.