1 |
;; Calculator for GNU Emacs, part II [calc-lang.el] |
;;; calc-lang.el --- calc language functions |
2 |
|
|
3 |
;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. |
;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. |
4 |
;; Written by Dave Gillespie, daveg@synaptics.com. |
|
5 |
|
;; Author: David Gillespie <daveg@synaptics.com> |
6 |
|
;; Maintainer: Colin Walters <walters@debian.org> |
7 |
|
|
8 |
;; This file is part of GNU Emacs. |
;; This file is part of GNU Emacs. |
9 |
|
|
22 |
;; file named COPYING. Among other things, the copyright notice |
;; file named COPYING. Among other things, the copyright notice |
23 |
;; and this notice must be preserved on all copies. |
;; and this notice must be preserved on all copies. |
24 |
|
|
25 |
|
;;; Commentary: |
26 |
|
|
27 |
|
;;; Code: |
28 |
|
|
29 |
|
|
30 |
;; This file is autoloaded from calc-ext.el. |
;; This file is autoloaded from calc-ext.el. |
58 |
(interactive) |
(interactive) |
59 |
(calc-wrapper |
(calc-wrapper |
60 |
(calc-set-language nil) |
(calc-set-language nil) |
61 |
(message "Normal language mode."))) |
(message "Normal language mode"))) |
62 |
|
|
63 |
(defun calc-flat-language () |
(defun calc-flat-language () |
64 |
(interactive) |
(interactive) |
65 |
(calc-wrapper |
(calc-wrapper |
66 |
(calc-set-language 'flat) |
(calc-set-language 'flat) |
67 |
(message "Flat language mode (all stack entries shown on one line)."))) |
(message "Flat language mode (all stack entries shown on one line)"))) |
68 |
|
|
69 |
(defun calc-big-language () |
(defun calc-big-language () |
70 |
(interactive) |
(interactive) |
71 |
(calc-wrapper |
(calc-wrapper |
72 |
(calc-set-language 'big) |
(calc-set-language 'big) |
73 |
(message "\"Big\" language mode."))) |
(message "\"Big\" language mode"))) |
74 |
|
|
75 |
(defun calc-unformatted-language () |
(defun calc-unformatted-language () |
76 |
(interactive) |
(interactive) |
77 |
(calc-wrapper |
(calc-wrapper |
78 |
(calc-set-language 'unform) |
(calc-set-language 'unform) |
79 |
(message "Unformatted language mode."))) |
(message "Unformatted language mode"))) |
80 |
|
|
81 |
|
|
82 |
(defun calc-c-language () |
(defun calc-c-language () |
83 |
(interactive) |
(interactive) |
84 |
(calc-wrapper |
(calc-wrapper |
85 |
(calc-set-language 'c) |
(calc-set-language 'c) |
86 |
(message "`C' language mode."))) |
(message "`C' language mode"))) |
87 |
|
|
88 |
(put 'c 'math-oper-table |
(put 'c 'math-oper-table |
89 |
'( ( "u+" ident -1 1000 ) |
'( ( "u+" ident -1 1000 ) |
145 |
(calc-set-language 'pascal n) |
(calc-set-language 'pascal n) |
146 |
(message (if (and n (/= n 0)) |
(message (if (and n (/= n 0)) |
147 |
(if (> n 0) |
(if (> n 0) |
148 |
"Pascal language mode (all uppercase)." |
"Pascal language mode (all uppercase)" |
149 |
"Pascal language mode (all lowercase).") |
"Pascal language mode (all lowercase)") |
150 |
"Pascal language mode.")))) |
"Pascal language mode")))) |
151 |
|
|
152 |
(put 'pascal 'math-oper-table |
(put 'pascal 'math-oper-table |
153 |
'( ( "not" calcFunc-lnot -1 1000 ) |
'( ( "not" calcFunc-lnot -1 1000 ) |
207 |
(calc-set-language 'fortran n) |
(calc-set-language 'fortran n) |
208 |
(message (if (and n (/= n 0)) |
(message (if (and n (/= n 0)) |
209 |
(if (> n 0) |
(if (> n 0) |
210 |
"FORTRAN language mode (all uppercase)." |
"FORTRAN language mode (all uppercase)" |
211 |
"FORTRAN language mode (all lowercase).") |
"FORTRAN language mode (all lowercase)") |
212 |
"FORTRAN language mode.")))) |
"FORTRAN language mode")))) |
213 |
|
|
214 |
(put 'fortran 'math-oper-table |
(put 'fortran 'math-oper-table |
215 |
'( ( "u/" (math-parse-fortran-vector) -1 1 ) |
'( ( "u/" (math-parse-fortran-vector) -1 1 ) |
257 |
(put 'fortran 'math-input-filter 'calc-input-case-filter) |
(put 'fortran 'math-input-filter 'calc-input-case-filter) |
258 |
(put 'fortran 'math-output-filter 'calc-output-case-filter) |
(put 'fortran 'math-output-filter 'calc-output-case-filter) |
259 |
|
|
260 |
|
(defvar math-parsing-fortran-vector nil) |
261 |
(defun math-parse-fortran-vector (op) |
(defun math-parse-fortran-vector (op) |
262 |
(let ((math-parsing-fortran-vector '(end . "\000"))) |
(let ((math-parsing-fortran-vector '(end . "\000"))) |
263 |
(prog1 |
(prog1 |
273 |
exp-data "\000") |
exp-data "\000") |
274 |
x) |
x) |
275 |
(throw 'syntax "Unmatched closing `/'"))) |
(throw 'syntax "Unmatched closing `/'"))) |
|
(setq math-parsing-fortran-vector nil) |
|
276 |
|
|
277 |
(defun math-parse-fortran-subscr (sym args) |
(defun math-parse-fortran-subscr (sym args) |
278 |
(setq sym (math-build-var-name sym)) |
(setq sym (math-build-var-name sym)) |
289 |
(calc-set-language 'tex n) |
(calc-set-language 'tex n) |
290 |
(message (if (and n (/= n 0)) |
(message (if (and n (/= n 0)) |
291 |
(if (> n 0) |
(if (> n 0) |
292 |
"TeX language mode with \\hbox{func}(\\hbox{var})." |
"TeX language mode with \\hbox{func}(\\hbox{var})" |
293 |
"TeX language mode with \\func{\\hbox{var}}.") |
"TeX language mode with \\func{\\hbox{var}}") |
294 |
"TeX language mode.")))) |
"TeX language mode")))) |
295 |
|
|
296 |
(put 'tex 'math-oper-table |
(put 'tex 'math-oper-table |
297 |
'( ( "u+" ident -1 1000 ) |
'( ( "u+" ident -1 1000 ) |
408 |
(interactive "P") |
(interactive "P") |
409 |
(calc-wrapper |
(calc-wrapper |
410 |
(calc-set-language 'eqn) |
(calc-set-language 'eqn) |
411 |
(message "Eqn language mode."))) |
(message "Eqn language mode"))) |
412 |
|
|
413 |
(put 'eqn 'math-oper-table |
(put 'eqn 'math-oper-table |
414 |
'( ( "u+" ident -1 1000 ) |
'( ( "u+" ident -1 1000 ) |
521 |
(interactive) |
(interactive) |
522 |
(calc-wrapper |
(calc-wrapper |
523 |
(calc-set-language 'math) |
(calc-set-language 'math) |
524 |
(message "Mathematica language mode."))) |
(message "Mathematica language mode"))) |
525 |
|
|
526 |
(put 'math 'math-oper-table |
(put 'math 'math-oper-table |
527 |
'( ( "[[" (math-read-math-subscr) 250 -1 ) |
'( ( "[[" (math-read-math-subscr) 250 -1 ) |
634 |
(interactive) |
(interactive) |
635 |
(calc-wrapper |
(calc-wrapper |
636 |
(calc-set-language 'maple) |
(calc-set-language 'maple) |
637 |
(message "Maple language mode."))) |
(message "Maple language mode"))) |
638 |
|
|
639 |
(put 'maple 'math-oper-table |
(put 'maple 'math-oper-table |
640 |
'( ( "matrix" ident -1 300 ) |
'( ( "matrix" ident -1 300 ) |