source: project/release/5/slib-prec/trunk/output-grammars.scm @ 38553

Last change on this file since 38553 was 38553, checked in by Kon Lovett, 6 months ago

add slib-prec

  • Property svn:executable set to *
File size: 5.8 KB
Line 
1;; JACAL: Symbolic Mathematics System.        -*-scheme-*-
2;; Copyright (C) 1989, 1990, 1991, 1992, 1993, 1995, 1997, 2007, 2009, 2010 Aubrey Jaffer.
3;;
4;; This program is free software; you can redistribute it and/or modify
5;; it under the terms of the GNU General Public License as published by
6;; the Free Software Foundation, either version 3 of the License, or (at
7;; your option) any later version.
8;;
9;; This program is distributed in the hope that it will be useful, but
10;; WITHOUT ANY WARRANTY; without even the implied warranty of
11;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12;; General Public License for more details.
13;;
14;; You should have received a copy of the GNU General Public License
15;; along with this program; if not, write to the Free Software
16;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18;;;; Here are the templates for 2 dimensional output
19
20(define tps:2d
21  '(
22    (template:default 140 #d0140 "(" #d1010 #(rest ", " #d2010) ")")
23    (template:bunch 140 "[" #d0010 #(rest ", " break #d1010) "]")
24    (template:matrix 140 (#\[) (#\ ) #d0010 #(rest "  " #d1010) (#\ ) (#\]))
25    (template:parenthesis 200 "(" #d1010 ")")
26    (- 100 #d1100 " - " break #d2101 #(rest " - " break #d3101))
27    (negate 100 "- " #d1100)
28    (+ 100 #d1100 #(rest " + " break #d2101))
29    (* 120 #d1120 #(rest " " #d2121))
30    (/ 120 #d1120 "/" #d2121)
31    (over 120 ((-1 #d1040)
32               (0 #\-)
33               (1 #d2040)))
34    (^ 140 #d1141 ((-1 #d2100)))
35    (= 80 #d1080 " = " break #d2080 #(rest " = " break #d3080))
36    (differential 170 #d1170 "'")
37    (partial 130 " " ((-1 "%")
38                      (0 #\-)
39                      (1 "%" #d2140)) " " #d1140)
40    (suchthat 40 "{" #d1190 " | " #d2040 "}")
41    (define 200 #d1120 ": " ((0 #d2010)))
42    (rapply 200 #d1200 ((1 #d2030 #(rest "," #d3010))))
43    (abs 200 (#\|) #d1010 (#\|))
44    (box 200 ((-1 #\")
45              (0 (#\") #d1010 (#\"))
46              (1 #\")))
47    (factorial 160 #d1160 "!")
48    (integrate 120 ((-3 #(optional #d4090))
49                    (-2 "/ ")
50                    (-1 "! ")
51                    (0 "! ")
52                    (1 "! ")
53                    (2 "/ ")
54                    (3 #(optional #d3090)))
55               #d1090 "d" #d2120)
56    (limit 90 ((0 "limit ")
57               (1 #d2090 "->" #d3090))
58           #d1090)
59    (sum 90 ((-3 #(optional #d4090))
60             (-2 "====")
61             (-1 "\\   ")
62             (0 " >  ")
63             (1 "/   ")
64             (2 "====")
65             (3 #(optional #d2090 #(optional" = " #d3090))))
66         #d1090)
67    (prod 90 ((-3 " " #(optional #d4090))
68              (-2 "/===/")
69              (-1 " ! ! ")
70              (0  " ! ! ")
71              (1  " ! ! ")
72              (2 #(optional #d2090 #(optional" = " #d3090))))
73          #d1090)
74    (at 90 #d1090
75        ((-2 "!")
76         (-1 "!")
77         (0 "!")
78         (1 "!")
79         (2 "!"))
80        ((2 #d2010 #(rest ", " #d3010))))
81    (help 100 "help;")
82    (qed 100 "qed;")
83    (% 200 "%")
84    (ncmult 110 #d1109 " . " #d2109)
85    (^^ 210 #d1211 "^^" #d2210)
86    ))
87
88(define tps:c
89  '(
90    (template:default 140 #d0140 "(" #d1010 #(rest ", " #d2010) ")")
91    (template:bunch 140 "{" #d0010 #(rest ", " #d1010) "}")
92    (template:parenthesis 200 "(" #d1010 ")")
93    (= 80 #d1080 " == " break #d2080 #(rest "==" break #d3080))
94    (- 100 #d1100 " - " break #d2101 #(rest " - " break #d3101))
95    (+ 100 #d1100 #(rest " + " break #d2101))
96    (* 120 #d1120 #(rest " * " #d2121))
97    (negate 90 "- " #d1090)
98    (/ 120 #d1120 "/" #d2121)
99    (over 120 #d1120 "/" #d2121)
100    (^ 140 "pow(" #d1141 ", " #d2100 ")")
101    (rapply 200 #d1200 "[" #d2030 #(rest "," #d3010) "]")
102    (box 200 ((-1 #\")
103              (0 (#\") #d1010 (#\"))
104              (1 #\")))
105    (define 200 #d1120 " = " #d2010)
106    (set 20 "set " #d1120 " " #d2010)
107    (show 20 "show " #d1120)
108    ))
109
110(define tps:std
111  '(
112    (template:default 140 #d0140 "(" #d1010 #(rest ", " #d2010) ")")
113    (template:bunch 140 "[" #d0010 #(rest ", " break #d1010) "]")
114    (template:parenthesis 200 "(" #d1010 ")")
115    (= 80 #d1080 " = " break #d2080 #(rest " = " break #d3080))
116    (- 100 #d1100 " - " break #d2101 #(rest " - " break #d3101))
117    (+ 100 #d1100 #(rest " + " break #d2101))
118    (* 120 #d1120 #(rest " * " #d2121))
119    (negate 90 "- " #d1090)
120    (/ 120 #d1120 "/" #d2121)
121    (over 120 #d1120 "/" #d2121)
122    (^ 140 #d1141 "^" #d2140)
123    (differential 170 #d1170 "'")
124    (suchthat 40 "{" #d1190 " | " #d2040 "}")
125    (rapply 200 #d1200 "[" #d2030 #(rest "," #d3010) "]")
126    (box 200 ((-1 #\")
127              (0 (#\") #d1010 (#\"))
128              (1 #\")))
129    (define 200 #d1120 ": " #d2010)
130    (set 20 "set " #d1120 " " #d2010)
131    (show 20 "show " #d1120)
132    (factorial 160 #d1160 "!")
133    (help 100 "help;")
134    (qed 100 "qed;")
135    (% 200 "%")
136    (ncmult 110 #d1109 " . " #d2109)
137    (^^ 210 #d1211 "^^" #d2210)
138    ))
139(define tps:tex
140  '(
141    (template:top 0 "$" #d1000 "$")
142    (template:default 140 #d0140 "\\left(" #d1010
143                      #(rest ", " #d2010) "\\right)")
144    (template:bunch 140 "\\left[" #d0010 #(rest ", " break #d1010) "\\right]")
145;;;    (template:matrix 140 "\\left({\matrix{" #d0010 #(rest "&" #d1010)
146;;;                  (#\\)(#\c)(#\r) "}}\\right)")
147    (template:parenthesis 200 "\\left(" #d1010 "\\right)")
148    (= 80 #d1080 " = " break #d2080 #(rest " = " break #d3080))
149    (- 100 #d1100 " - " break #d2101 #(rest " - " break #d3101))
150    (+ 100 #d1100 #(rest " + " break #d2101))
151    (* 120 #d1120 #(rest "\\," #d2121))
152    (negate 90 "- " #d1100)
153    (/ 120 #d1120 "/{" break #d2121 "}")
154    (over 120 "{" #d1040 "}\\over{" break #d2041 "}")
155    (^ 140 #d1141 "^{" #d2100 "}")
156    (differential 170 "{" #d1170 "}'")
157    (suchthat 40 "\\left\\{ " #d1190 " | " break #d2040 "\\right\\}")
158    (rapply 200 #d1200 "\\left[" #d2030 #(rest "," break #d3010) "\\right]")
159    (abs 200 "\\left|" #d1010 "\\right|")
160;;;    (box 200 ((-1 #\")
161;;;           (0 (#\") #d1010 (#\"))
162;;;           (1 #\")))
163    (define 200 #d1120 ": " #d2010)
164    (set 20 "set " #d1120 " " #d2010)
165    (show 20 "show " #d1120)
166    (factorial 160 #d1160 "!")
167    (help 100 "help;")
168    (qed 100 "qed;")
169    (% 200 "%")
170    ))
Note: See TracBrowser for help on using the repository browser.