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

Last change on this file since 38716 was 38716, checked in by Kon Lovett, 4 months ago

split grammers, strict-types

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