ritex 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,88 @@
1
+ ## lib/ritex/mathml/functions.rb -- MathML conversions of TeX markup
2
+ ## "functions". See Ritex::MathML
3
+ ##
4
+ ## Author:: William Morgan (mailto: wmorgan-ritex@masanjin.net)
5
+ ## Copyright:: Copyright 2005 William Morgan
6
+ ## License:: GNU GPL version 2
7
+
8
+ class String
9
+ ## map over the characters in a string
10
+ def map_chars
11
+ ret = ""
12
+ each_byte { |b| ret += yield b.chr }
13
+ ret
14
+ end
15
+ end
16
+
17
+ module Ritex
18
+ module MathML
19
+
20
+ ## this is not ideal by any means. until we can call lambda with
21
+ ## arbitrary bindings, though, we will relay markup and lookup calls
22
+ ## to a registered parser, so that "functions" can be written easily.
23
+ def markup *a; Ritex::global_parser.markup(*a); end
24
+ def lookup *a; Ritex::global_parser.lookup(*a); end
25
+ module_function :markup, :lookup
26
+
27
+ FUNCTIONS = {
28
+ "frac" => lambda { |a, b| markup a + b, "mfrac" },
29
+ "binom" => lambda { |a, b| markup a + b, "mfrac", 'linethickness="0"' },
30
+ "textstyle" => lambda { |x| markup x, "mstyle", 'displaystyle="false"' },
31
+ "displaystyle" => lambda { |x| markup x, "mstyle", 'displaystyle="true"' },
32
+ "underset" => lambda { |a, b| markup b + a, "munder" },
33
+ "overset" => lambda { |a, b| markup b + a, "mover" },
34
+ "root" => lambda { |a, b| markup b + a, "mroot" },
35
+ "sqrt" => lambda { |x| markup x, "msqrt" },
36
+ "phantom" => lambda { |x| markup x, "mphantom" },
37
+ "underoverset" => lambda { |a, b, c| markup c + a + b, "munderover" },
38
+ "scriptsize" => lambda { markup x, "mstyle", 'scriptlevel="1"' },
39
+ "scriptscriptsize" => lambda { markup x, "mstyle", 'scriptlevel="2"' },
40
+ "textsize" => lambda { markup x, "mstyle", 'scriptlevel="0"' },
41
+
42
+ "toggle" => lambda { raise "not yet implemented" },
43
+ "fghighlight" => lambda { raise "not yet implemented" },
44
+ "bghighlight" => lambda { raise "not yet implemented" },
45
+ "tensor" => lambda { |a, b| raise "not yet implemented" },
46
+ "multiscripts" => lambda { |a, b, c| raise "not yet implemented" },
47
+ "statusline" => lambda { raise "not yet implemented" },
48
+ }
49
+
50
+ {
51
+ "vec" => "RightVector",
52
+ "dot" => "dot",
53
+ "ddot" => "Dot",
54
+ "tilde" => "tilde",
55
+ "check" => "macr",
56
+ "hat" => "Hat",
57
+ "bar" => "OverBar",
58
+ "overbrace" => "OverBrace",
59
+ }.each { |k, v| FUNCTIONS[k] = lambda { |x| markup x + "<mo>&#{v};</mo>", "mover" } }
60
+
61
+ {
62
+ "underbrace" => "UnderBrace"
63
+ }.each { |k, v| FUNCTIONS[k] = lambda { |x| markup x + "<mo>&#{v};</mo>", "munder" } }
64
+
65
+ %w(closure overline widebar).each { |x| FUNCTIONS[x] = FUNCTIONS["bar"] }
66
+ %w(vec tilde check hat).each { |x| FUNCTIONS["wide#{x}"] = FUNCTIONS[x] }
67
+
68
+ ## "environments"--things that require strings, i.e. where spaces matter.
69
+ ENVS = {
70
+ "text" => lambda { |x| markup x, "mtext" },
71
+ "mathcal" => lambda { |x| markup x.map_chars { |c| "&#{c}scr;" }, "mi" },
72
+ "mathfr" => lambda { |x| markup x.map_chars { |c| "&#{c}fr;" }, "mi" },
73
+ "mathop" => lambda { |x| markup x, 'mo', 'lspace="0em" rspace="thinmathspace"' },
74
+ "mathbb" => lambda { |x| markup x.map_chars { |c| (c[0] <= ?Z ? "&#{c}opf;" : c) }, "mi" },
75
+ "href" => lambda { |x| "<mrow xlink:type=\"simple\" xlink:show=\"replace\" xlink:href=\"#{x}\">#{x}</mrow>" },
76
+ "mathit" => lambda { |x| markup x, "mstyle", 'fontstyle="italic"' },
77
+ "mathrm" => lambda { |x| markup x, "mstyle", 'fontstyle="normal" fontweight="normal"' },
78
+ "mathbf" => lambda { |x| markup x, "mstyle", 'fontweight="bold"' },
79
+ "space" => lambda { |h, d, w| "<mspace height=\".#{h}ex\"/ depth=\".#{d}ex\" width=\".#{w}em\">" }
80
+ }
81
+
82
+ ## TODO: array arrayopts colalign collayout rowalign align equalrows equalcols rowlines collines frame padding rowopts cellopts rowspan colspan
83
+
84
+
85
+ end
86
+ end
87
+
88
+
@@ -0,0 +1,30 @@
1
+ ## lib/ritex/mathml/entities.rb -- MathML conversions of markup used by the parser.
2
+ ## See Ritex::MathML.
3
+ ##
4
+ ## Author:: William Morgan (mailto: wmorgan-ritex@masanjin.net)
5
+ ## Copyright:: Copyright 2005 William Morgan
6
+ ## License:: GNU GPL version 2
7
+
8
+ module Ritex
9
+ module MathML
10
+
11
+ ## A simple mapping between markup elements used in parser.y and
12
+ ## actual MathML elements.
13
+ MARKUP = {
14
+ :subsup => "msubsup",
15
+ :sub => "msub",
16
+ :sup => "msup",
17
+ :num => "mn",
18
+ :var => "mi",
19
+ :group => "mrow",
20
+ :op => "mo",
21
+ :unaryminus => ['mo', 'lspace="thinthinmathspace" rspace="0em"'],
22
+ :array => "mtable",
23
+ :row => "mtr",
24
+ :col => "mtd",
25
+ :math => ["math", 'xmlns="http://www.w3.org/1998/Math/MathML"'],
26
+ :displaymath => ["math", 'xmlns="http://www.w3.org/1998/Math/MathML" display="block"'],
27
+ }
28
+
29
+ end
30
+ end
@@ -0,0 +1,845 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by racc 1.4.4
4
+ # from racc grammer file "lib/ritex/parser.y".
5
+ #
6
+
7
+ require 'racc/parser'
8
+
9
+
10
+ module Ritex
11
+
12
+ class Parser < Racc::Parser
13
+
14
+ ##### racc 1.4.4 generates ###
15
+
16
+ racc_reduce_table = [
17
+ 0, 0, :racc_error,
18
+ 0, 44, :_reduce_1,
19
+ 2, 44, :_reduce_2,
20
+ 1, 45, :_reduce_none,
21
+ 5, 45, :_reduce_4,
22
+ 5, 45, :_reduce_5,
23
+ 3, 45, :_reduce_6,
24
+ 3, 45, :_reduce_7,
25
+ 1, 46, :_reduce_8,
26
+ 1, 46, :_reduce_9,
27
+ 1, 46, :_reduce_10,
28
+ 1, 46, :_reduce_none,
29
+ 1, 46, :_reduce_none,
30
+ 2, 46, :_reduce_13,
31
+ 3, 46, :_reduce_14,
32
+ 1, 46, :_reduce_15,
33
+ 1, 46, :_reduce_none,
34
+ 1, 46, :_reduce_none,
35
+ 1, 46, :_reduce_18,
36
+ 4, 46, :_reduce_19,
37
+ 3, 46, :_reduce_20,
38
+ 1, 47, :_reduce_21,
39
+ 2, 47, :_reduce_22,
40
+ 3, 47, :_reduce_23,
41
+ 4, 47, :_reduce_24,
42
+ 1, 48, :_reduce_25,
43
+ 2, 48, :_reduce_26,
44
+ 3, 48, :_reduce_27,
45
+ 4, 48, :_reduce_28,
46
+ 3, 49, :_reduce_29,
47
+ 1, 53, :_reduce_30,
48
+ 1, 53, :_reduce_31,
49
+ 1, 55, :_reduce_none,
50
+ 1, 55, :_reduce_none,
51
+ 1, 55, :_reduce_none,
52
+ 1, 55, :_reduce_none,
53
+ 1, 55, :_reduce_none,
54
+ 1, 55, :_reduce_none,
55
+ 1, 55, :_reduce_38,
56
+ 1, 55, :_reduce_none,
57
+ 1, 55, :_reduce_none,
58
+ 3, 55, :_reduce_41,
59
+ 1, 56, :_reduce_none,
60
+ 1, 56, :_reduce_none,
61
+ 1, 56, :_reduce_none,
62
+ 1, 56, :_reduce_none,
63
+ 1, 56, :_reduce_none,
64
+ 1, 56, :_reduce_none,
65
+ 1, 56, :_reduce_none,
66
+ 1, 56, :_reduce_none,
67
+ 1, 56, :_reduce_none,
68
+ 1, 56, :_reduce_none,
69
+ 0, 54, :_reduce_52,
70
+ 2, 54, :_reduce_53,
71
+ 7, 51, :_reduce_54,
72
+ 10, 51, :_reduce_55,
73
+ 1, 57, :_reduce_none,
74
+ 1, 57, :_reduce_none,
75
+ 1, 57, :_reduce_none,
76
+ 1, 57, :_reduce_none,
77
+ 1, 57, :_reduce_none,
78
+ 1, 57, :_reduce_none,
79
+ 1, 57, :_reduce_none,
80
+ 1, 57, :_reduce_none,
81
+ 1, 57, :_reduce_none,
82
+ 4, 50, :_reduce_65,
83
+ 1, 58, :_reduce_none,
84
+ 3, 58, :_reduce_67,
85
+ 1, 59, :_reduce_68,
86
+ 1, 60, :_reduce_none,
87
+ 3, 60, :_reduce_70,
88
+ 1, 61, :_reduce_71,
89
+ 1, 52, :_reduce_none,
90
+ 1, 52, :_reduce_none,
91
+ 1, 52, :_reduce_none,
92
+ 1, 52, :_reduce_none,
93
+ 1, 52, :_reduce_none,
94
+ 1, 52, :_reduce_none,
95
+ 1, 52, :_reduce_none,
96
+ 1, 52, :_reduce_none,
97
+ 1, 52, :_reduce_none,
98
+ 1, 52, :_reduce_none,
99
+ 1, 52, :_reduce_none,
100
+ 1, 52, :_reduce_83,
101
+ 1, 52, :_reduce_84,
102
+ 1, 52, :_reduce_none,
103
+ 1, 52, :_reduce_none,
104
+ 1, 52, :_reduce_none,
105
+ 1, 52, :_reduce_none ]
106
+
107
+ racc_reduce_n = 89
108
+
109
+ racc_shift_n = 131
110
+
111
+ racc_action_table = [
112
+ 4, 53, 11, 17, 21, 23, 27, 32, 36, 41,
113
+ 43, 3, 6, 10, 15, 109, 24, 29, 121, 37,
114
+ 122, 51, 50, 7, 108, 14, 19, 107, 26, 31,
115
+ 35, 40, 42, 2, 5, 9, 13, 18, 22, 25,
116
+ 30, 34, 39, 11, 17, 21, 23, 27, 32, 36,
117
+ 41, 43, 3, 6, 10, 15, 54, 24, 29, 44,
118
+ 37, 110, 111, 44, 7, 106, 14, 19, 44, 26,
119
+ 31, 35, 40, 42, 2, 5, 9, 13, 18, 22,
120
+ 25, 30, 34, 39, 90, 93, 94, 96, 97, 98,
121
+ 100, 102, 103, 84, 86, 89, 92, 95, 44, 44,
122
+ 99, 44, 125, 104, 85, 87, 130, 14, 19, 44,
123
+ 26, 31, 35, 40, 42, 2, 5, 9, 13, 18,
124
+ 22, 25, 30, 34, 39, 90, 93, 94, 96, 97,
125
+ 98, 100, 102, 103, 84, 86, 89, 92, 95, 127,
126
+ 128, 99, 46, nil, 104, 85, 87, 126, 14, 19,
127
+ nil, 26, 31, 35, 40, 42, 2, 5, 9, 13,
128
+ 18, 22, 25, 30, 34, 39, 90, 93, 94, 96,
129
+ 97, 98, 100, 102, 103, 84, 86, 89, 92, 95,
130
+ nil, nil, 99, nil, nil, 104, 85, 87, 123, 14,
131
+ 19, nil, 26, 31, 35, 40, 42, 2, 5, 9,
132
+ 13, 18, 22, 25, 30, 34, 39, 11, 17, 21,
133
+ 23, 27, 32, 36, 41, 43, 3, 6, 10, 15,
134
+ nil, 24, 29, nil, 37, nil, nil, nil, 7, nil,
135
+ 14, 19, nil, 26, 31, 35, 40, 42, 2, 5,
136
+ 9, 13, 18, 22, 25, 30, 34, 39, 11, 17,
137
+ 21, 23, 27, 32, 36, 41, 43, 3, 6, 10,
138
+ 15, nil, 24, 29, nil, 37, nil, nil, nil, 7,
139
+ nil, 14, 19, nil, 26, 31, 35, 40, 42, 2,
140
+ 5, 9, 13, 18, 22, 25, 30, 34, 39, 11,
141
+ 17, 21, 23, 27, 32, 36, 41, 43, 3, 6,
142
+ 10, 15, nil, 24, 29, nil, 37, nil, nil, nil,
143
+ 7, nil, 14, 19, nil, 26, 31, 35, 40, 42,
144
+ 2, 5, 9, 13, 18, 22, 25, 30, 34, 39,
145
+ 11, 17, 21, 23, 27, 32, 36, 41, 43, 3,
146
+ 6, 10, 15, nil, 24, 29, nil, 37, nil, nil,
147
+ nil, 7, nil, 14, 19, nil, 26, 31, 35, 40,
148
+ 42, 2, 5, 9, 13, 18, 22, 25, 30, 34,
149
+ 39, 11, 17, 21, 23, 27, 32, 36, 41, 43,
150
+ 3, 6, 10, 15, nil, 24, 29, nil, 37, nil,
151
+ nil, nil, 7, nil, 14, 19, nil, 26, 31, 35,
152
+ 40, 42, 2, 5, 9, 13, 18, 22, 25, 30,
153
+ 34, 39, 11, 17, 21, 23, 27, 32, 36, 41,
154
+ 43, 3, 6, 10, 15, nil, 24, 29, nil, 37,
155
+ nil, nil, nil, 7, nil, 14, 19, nil, 26, 31,
156
+ 35, 40, 42, 2, 5, 9, 13, 18, 22, 25,
157
+ 30, 34, 39, 11, 17, 21, 23, 27, 32, 36,
158
+ 41, 43, 3, 6, 10, 15, nil, 24, 29, nil,
159
+ 37, nil, nil, nil, 7, nil, 14, 19, nil, 26,
160
+ 31, 35, 40, 42, 2, 5, 9, 13, 18, 22,
161
+ 25, 30, 34, 39, 11, 17, 21, 23, 27, 32,
162
+ 36, 41, 43, 3, 6, 10, 15, nil, 24, 29,
163
+ nil, 37, nil, nil, nil, 7, nil, 14, 19, nil,
164
+ 26, 31, 35, 40, 42, 2, 5, 9, 13, 18,
165
+ 22, 25, 30, 34, 39, 11, 17, 21, 23, 27,
166
+ 32, 36, 41, 43, 3, 6, 10, 15, nil, 24,
167
+ 29, nil, 37, nil, nil, nil, 7, 61, 14, 19,
168
+ nil, 26, 31, 35, 40, 42, 2, 5, 9, 13,
169
+ 18, 22, 25, 30, 34, 39, 11, 17, 21, 23,
170
+ 27, 32, 36, 41, 43, 3, 6, 10, 15, nil,
171
+ 24, 29, nil, 37, 81, nil, nil, 7, nil, 14,
172
+ 19, nil, 26, 31, 35, 40, 42, 2, 5, 9,
173
+ 13, 18, 22, 25, 30, 34, 39, 11, 17, 21,
174
+ 23, 27, 32, 36, 41, 43, 3, 6, 10, 15,
175
+ nil, 24, 29, nil, 37, nil, nil, nil, 7, nil,
176
+ 14, 19, nil, 26, 31, 35, 40, 42, 2, 5,
177
+ 9, 13, 18, 22, 25, 30, 34, 39, 11, 17,
178
+ 21, 23, 27, 32, 36, 41, 43, 3, 6, 10,
179
+ 15, nil, 24, 29, nil, 37, nil, nil, nil, 7,
180
+ nil, 14, 19, nil, 26, 31, 35, 40, 42, 2,
181
+ 5, 9, 13, 18, 22, 25, 30, 34, 39, 90,
182
+ 93, 94, 96, 97, 98, 100, 102, 103, 84, 86,
183
+ 89, 92, 95, nil, nil, 99, nil, nil, 104, 85,
184
+ 87, 91, 14, 19, 112, 26, 31, 35, 40, 42,
185
+ 2, 5, 9, 13, 18, 22, 25, 30, 34, 39,
186
+ nil, nil, nil, nil, nil, 14, 19, nil, 26, 31,
187
+ 35, 40, 42, 2, 5, 9, 13, 18, 22, 25,
188
+ 30, 34, 39, 74, nil, 75, 76, 77, 78, 79,
189
+ 70, 71, 72 ]
190
+
191
+ racc_action_check = [
192
+ 1, 23, 1, 1, 1, 1, 1, 1, 1, 1,
193
+ 1, 1, 1, 1, 1, 66, 1, 1, 111, 1,
194
+ 111, 12, 12, 1, 66, 1, 1, 64, 1, 1,
195
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
196
+ 1, 1, 1, 58, 58, 58, 58, 58, 58, 58,
197
+ 58, 58, 58, 58, 58, 58, 24, 58, 58, 3,
198
+ 58, 68, 73, 49, 58, 63, 58, 58, 15, 58,
199
+ 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
200
+ 58, 58, 58, 58, 129, 129, 129, 129, 129, 129,
201
+ 129, 129, 129, 129, 129, 129, 129, 129, 62, 47,
202
+ 129, 10, 122, 129, 129, 129, 129, 129, 129, 6,
203
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
204
+ 129, 129, 129, 129, 129, 124, 124, 124, 124, 124,
205
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 125,
206
+ 127, 124, 4, nil, 124, 124, 124, 124, 124, 124,
207
+ nil, 124, 124, 124, 124, 124, 124, 124, 124, 124,
208
+ 124, 124, 124, 124, 124, 124, 116, 116, 116, 116,
209
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
210
+ nil, nil, 116, nil, nil, 116, 116, 116, 116, 116,
211
+ 116, nil, 116, 116, 116, 116, 116, 116, 116, 116,
212
+ 116, 116, 116, 116, 116, 116, 116, 107, 107, 107,
213
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
214
+ nil, 107, 107, nil, 107, nil, nil, nil, 107, nil,
215
+ 107, 107, nil, 107, 107, 107, 107, 107, 107, 107,
216
+ 107, 107, 107, 107, 107, 107, 107, 107, 106, 106,
217
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
218
+ 106, nil, 106, 106, nil, 106, nil, nil, nil, 106,
219
+ nil, 106, 106, nil, 106, 106, 106, 106, 106, 106,
220
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 82,
221
+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
222
+ 82, 82, nil, 82, 82, nil, 82, nil, nil, nil,
223
+ 82, nil, 82, 82, nil, 82, 82, 82, 82, 82,
224
+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
225
+ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
226
+ 65, 65, 65, nil, 65, 65, nil, 65, nil, nil,
227
+ nil, 65, nil, 65, 65, nil, 65, 65, 65, 65,
228
+ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
229
+ 65, 32, 32, 32, 32, 32, 32, 32, 32, 32,
230
+ 32, 32, 32, 32, nil, 32, 32, nil, 32, nil,
231
+ nil, nil, 32, nil, 32, 32, nil, 32, 32, 32,
232
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
233
+ 32, 32, 36, 36, 36, 36, 36, 36, 36, 36,
234
+ 36, 36, 36, 36, 36, nil, 36, 36, nil, 36,
235
+ nil, nil, nil, 36, nil, 36, 36, nil, 36, 36,
236
+ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
237
+ 36, 36, 36, 41, 41, 41, 41, 41, 41, 41,
238
+ 41, 41, 41, 41, 41, 41, nil, 41, 41, nil,
239
+ 41, nil, nil, nil, 41, nil, 41, 41, nil, 41,
240
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
241
+ 41, 41, 41, 41, 56, 56, 56, 56, 56, 56,
242
+ 56, 56, 56, 56, 56, 56, 56, nil, 56, 56,
243
+ nil, 56, nil, nil, nil, 56, nil, 56, 56, nil,
244
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
245
+ 56, 56, 56, 56, 56, 48, 48, 48, 48, 48,
246
+ 48, 48, 48, 48, 48, 48, 48, 48, nil, 48,
247
+ 48, nil, 48, nil, nil, nil, 48, 48, 48, 48,
248
+ nil, 48, 48, 48, 48, 48, 48, 48, 48, 48,
249
+ 48, 48, 48, 48, 48, 48, 57, 57, 57, 57,
250
+ 57, 57, 57, 57, 57, 57, 57, 57, 57, nil,
251
+ 57, 57, nil, 57, 57, nil, nil, 57, nil, 57,
252
+ 57, nil, 57, 57, 57, 57, 57, 57, 57, 57,
253
+ 57, 57, 57, 57, 57, 57, 57, 50, 50, 50,
254
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
255
+ nil, 50, 50, nil, 50, nil, nil, nil, 50, nil,
256
+ 50, 50, nil, 50, 50, 50, 50, 50, 50, 50,
257
+ 50, 50, 50, 50, 50, 50, 50, 50, 51, 51,
258
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
259
+ 51, nil, 51, 51, nil, 51, nil, nil, nil, 51,
260
+ nil, 51, 51, nil, 51, 51, 51, 51, 51, 51,
261
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 59,
262
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
263
+ 59, 59, 59, nil, nil, 59, nil, nil, 59, 59,
264
+ 59, 59, 59, 59, 81, 59, 59, 59, 59, 59,
265
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
266
+ nil, nil, nil, nil, nil, 81, 81, nil, 81, 81,
267
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
268
+ 81, 81, 81, 54, nil, 54, 54, 54, 54, 54,
269
+ 54, 54, 54 ]
270
+
271
+ racc_action_pointer = [
272
+ nil, 0, nil, 36, 142, nil, 86, nil, nil, nil,
273
+ 78, nil, 0, nil, nil, 45, nil, nil, nil, nil,
274
+ nil, nil, nil, -22, 33, nil, nil, nil, nil, nil,
275
+ nil, nil, 369, nil, nil, nil, 410, nil, nil, nil,
276
+ nil, 451, nil, nil, nil, nil, nil, 76, 533, 40,
277
+ 615, 656, nil, nil, 759, nil, 492, 574, 41, 697,
278
+ nil, nil, 75, 44, 5, 328, 0, nil, 34, nil,
279
+ nil, nil, nil, 38, nil, nil, nil, nil, nil, nil,
280
+ nil, 720, 287, nil, nil, nil, nil, nil, nil, nil,
281
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
282
+ nil, nil, nil, nil, nil, nil, 246, 205, nil, nil,
283
+ nil, -5, nil, nil, nil, nil, 164, nil, nil, nil,
284
+ nil, nil, 100, nil, 123, 113, nil, 117, nil, 82,
285
+ nil ]
286
+
287
+ racc_action_default = [
288
+ -1, -89, -79, -89, -89, -80, -89, -1, -2, -81,
289
+ -89, -8, -3, -82, -76, -89, -11, -9, -83, -77,
290
+ -12, -10, -84, -89, -89, -85, -72, -21, -16, -15,
291
+ -86, -73, -89, -17, -87, -74, -89, -1, -18, -88,
292
+ -75, -89, -78, -25, -52, -26, 131, -89, -89, -89,
293
+ -89, -89, -13, -1, -89, -22, -89, -89, -89, -89,
294
+ -27, -14, -89, -6, -7, -71, -89, -66, -68, -69,
295
+ -62, -63, -64, -89, -56, -57, -58, -59, -60, -61,
296
+ -23, -20, -89, -53, -48, -35, -49, -52, -38, -50,
297
+ -32, -29, -51, -36, -42, -39, -37, -43, -44, -40,
298
+ -45, -33, -46, -47, -34, -28, -89, -89, -65, -1,
299
+ -1, -89, -31, -30, -19, -24, -89, -5, -4, -67,
300
+ -70, -52, -89, -41, -89, -89, -54, -89, -52, -89,
301
+ -55 ]
302
+
303
+ racc_goto_table = [
304
+ 59, 55, 101, 73, 45, 56, 67, 47, 1, 66,
305
+ 58, 49, 114, 120, nil, 48, 52, nil, nil, 63,
306
+ 64, nil, nil, nil, 113, 80, nil, 82, nil, nil,
307
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
308
+ nil, nil, nil, 116, nil, 57, nil, nil, 60, nil,
309
+ 62, 115, nil, nil, nil, nil, nil, nil, nil, 101,
310
+ nil, nil, 119, 105, nil, nil, nil, 101, nil, nil,
311
+ nil, nil, 101, nil, nil, 117, 118, 124, nil, nil,
312
+ nil, nil, nil, nil, 129 ]
313
+
314
+ racc_goto_check = [
315
+ 11, 3, 9, 14, 6, 3, 16, 6, 1, 15,
316
+ 3, 6, 10, 18, nil, 1, 6, nil, nil, 3,
317
+ 3, nil, nil, nil, 9, 3, nil, 3, nil, nil,
318
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
319
+ nil, nil, nil, 11, nil, 1, nil, nil, 6, nil,
320
+ 6, 3, nil, nil, nil, nil, nil, nil, nil, 9,
321
+ nil, nil, 16, 6, nil, nil, nil, 9, nil, nil,
322
+ nil, nil, 9, nil, nil, 3, 3, 11, nil, nil,
323
+ nil, nil, nil, nil, 11 ]
324
+
325
+ racc_goto_pointer = [
326
+ nil, 8, nil, -31, nil, nil, 1, nil, nil, -57,
327
+ -69, -44, nil, nil, -51, -44, -47, nil, -97 ]
328
+
329
+ racc_goto_default = [
330
+ nil, 65, 8, 12, 16, 20, nil, 28, 33, 38,
331
+ nil, nil, 83, 88, nil, nil, nil, 68, 69 ]
332
+
333
+ racc_token_table = {
334
+ false => 0,
335
+ Object.new => 1,
336
+ :NUMBER => 2,
337
+ :VAR => 3,
338
+ :SYMBOL => 4,
339
+ :ARRAY => 5,
340
+ :FUNC0 => 6,
341
+ :FUNC1 => 7,
342
+ :FUNC2 => 8,
343
+ :FUNC3 => 9,
344
+ :MACRO0 => 10,
345
+ :MACRO1 => 11,
346
+ :MACRO2 => 12,
347
+ :MACRO3 => 13,
348
+ :ENV => 14,
349
+ :DOUBLEBACK => 15,
350
+ :DEFINE => 16,
351
+ :UNARYMINUS => 17,
352
+ :SPACE => 18,
353
+ :LEFT => 19,
354
+ :RIGHT => 20,
355
+ "^" => 21,
356
+ "_" => 22,
357
+ "{" => 23,
358
+ "}" => 24,
359
+ "[" => 25,
360
+ "]" => 26,
361
+ "&" => 27,
362
+ "+" => 28,
363
+ "-" => 29,
364
+ "*" => 30,
365
+ "/" => 31,
366
+ "|" => 32,
367
+ "." => 33,
368
+ "," => 34,
369
+ ";" => 35,
370
+ ":" => 36,
371
+ "<" => 37,
372
+ ">" => 38,
373
+ "=" => 39,
374
+ "(" => 40,
375
+ ")" => 41,
376
+ "#" => 42 }
377
+
378
+ racc_use_result_var = true
379
+
380
+ racc_nt_base = 43
381
+
382
+ Racc_arg = [
383
+ racc_action_table,
384
+ racc_action_check,
385
+ racc_action_default,
386
+ racc_action_pointer,
387
+ racc_goto_table,
388
+ racc_goto_check,
389
+ racc_goto_default,
390
+ racc_goto_pointer,
391
+ racc_nt_base,
392
+ racc_reduce_table,
393
+ racc_token_table,
394
+ racc_shift_n,
395
+ racc_reduce_n,
396
+ racc_use_result_var ]
397
+
398
+ Racc_token_to_s_table = [
399
+ '$end',
400
+ 'error',
401
+ 'NUMBER',
402
+ 'VAR',
403
+ 'SYMBOL',
404
+ 'ARRAY',
405
+ 'FUNC0',
406
+ 'FUNC1',
407
+ 'FUNC2',
408
+ 'FUNC3',
409
+ 'MACRO0',
410
+ 'MACRO1',
411
+ 'MACRO2',
412
+ 'MACRO3',
413
+ 'ENV',
414
+ 'DOUBLEBACK',
415
+ 'DEFINE',
416
+ 'UNARYMINUS',
417
+ 'SPACE',
418
+ 'LEFT',
419
+ 'RIGHT',
420
+ '"^"',
421
+ '"_"',
422
+ '"{"',
423
+ '"}"',
424
+ '"["',
425
+ '"]"',
426
+ '"&"',
427
+ '"+"',
428
+ '"-"',
429
+ '"*"',
430
+ '"/"',
431
+ '"|"',
432
+ '"."',
433
+ '","',
434
+ '";"',
435
+ '":"',
436
+ '"<"',
437
+ '">"',
438
+ '"="',
439
+ '"("',
440
+ '")"',
441
+ '"#"',
442
+ '$start',
443
+ 'exp',
444
+ 'expel',
445
+ 'atom',
446
+ 'func',
447
+ 'macro',
448
+ 'arg',
449
+ 'array',
450
+ 'macrodef',
451
+ 'plainop',
452
+ 'pos',
453
+ 'string',
454
+ 'stringel',
455
+ 'escapeme',
456
+ 'symspec',
457
+ 'ainnards',
458
+ 'arow',
459
+ 'arow1',
460
+ 'acol']
461
+
462
+ Racc_debug_parser = false
463
+
464
+ ##### racc system variables end #####
465
+
466
+ # reduce 0 omitted
467
+
468
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 29
469
+ def _reduce_1( val, _values, result )
470
+ result = ""
471
+ result
472
+ end
473
+ .,.,
474
+
475
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 30
476
+ def _reduce_2( val, _values, result )
477
+ result = join val[0], val[1]
478
+ result
479
+ end
480
+ .,.,
481
+
482
+ # reduce 3 omitted
483
+
484
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 33
485
+ def _reduce_4( val, _values, result )
486
+ result = markup join(val[0], val[4], val[2]), :subsup
487
+ result
488
+ end
489
+ .,.,
490
+
491
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 34
492
+ def _reduce_5( val, _values, result )
493
+ result = markup join(val[0], val[2], val[4]), :subsup
494
+ result
495
+ end
496
+ .,.,
497
+
498
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 35
499
+ def _reduce_6( val, _values, result )
500
+ result = markup join(val[0], val[2]), :sub
501
+ result
502
+ end
503
+ .,.,
504
+
505
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 36
506
+ def _reduce_7( val, _values, result )
507
+ result = markup join(val[0], val[2]), :sup
508
+ result
509
+ end
510
+ .,.,
511
+
512
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 38
513
+ def _reduce_8( val, _values, result )
514
+ result = markup val[0], :num
515
+ result
516
+ end
517
+ .,.,
518
+
519
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 39
520
+ def _reduce_9( val, _values, result )
521
+ result = markup val[0], :var
522
+ result
523
+ end
524
+ .,.,
525
+
526
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 40
527
+ def _reduce_10( val, _values, result )
528
+ result = lookup val[0]
529
+ result
530
+ end
531
+ .,.,
532
+
533
+ # reduce 11 omitted
534
+
535
+ # reduce 12 omitted
536
+
537
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 43
538
+ def _reduce_13( val, _values, result )
539
+ result = special(*val)
540
+ result
541
+ end
542
+ .,.,
543
+
544
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 44
545
+ def _reduce_14( val, _values, result )
546
+ result = markup val[1], :group
547
+ result
548
+ end
549
+ .,.,
550
+
551
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 45
552
+ def _reduce_15( val, _values, result )
553
+ result = markup val[0], :unaryminus
554
+ result
555
+ end
556
+ .,.,
557
+
558
+ # reduce 16 omitted
559
+
560
+ # reduce 17 omitted
561
+
562
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 48
563
+ def _reduce_18( val, _values, result )
564
+ result = markup val[0], :op
565
+ result
566
+ end
567
+ .,.,
568
+
569
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 49
570
+ def _reduce_19( val, _values, result )
571
+ result = markup join(val[1], val[3]), :group
572
+ result
573
+ end
574
+ .,.,
575
+
576
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 50
577
+ def _reduce_20( val, _values, result )
578
+ result = markup val[1], :group
579
+ result
580
+ end
581
+ .,.,
582
+
583
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 53
584
+ def _reduce_21( val, _values, result )
585
+ result = special(*val)
586
+ result
587
+ end
588
+ .,.,
589
+
590
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 54
591
+ def _reduce_22( val, _values, result )
592
+ result = special(*val)
593
+ result
594
+ end
595
+ .,.,
596
+
597
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 55
598
+ def _reduce_23( val, _values, result )
599
+ result = special(*val)
600
+ result
601
+ end
602
+ .,.,
603
+
604
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 56
605
+ def _reduce_24( val, _values, result )
606
+ result = special(*val)
607
+ result
608
+ end
609
+ .,.,
610
+
611
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 59
612
+ def _reduce_25( val, _values, result )
613
+ result = special(*val)
614
+ result
615
+ end
616
+ .,.,
617
+
618
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 60
619
+ def _reduce_26( val, _values, result )
620
+ result = special(*val)
621
+ result
622
+ end
623
+ .,.,
624
+
625
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 61
626
+ def _reduce_27( val, _values, result )
627
+ result = special(*val)
628
+ result
629
+ end
630
+ .,.,
631
+
632
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 62
633
+ def _reduce_28( val, _values, result )
634
+ result = special(*val)
635
+ result
636
+ end
637
+ .,.,
638
+
639
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 65
640
+ def _reduce_29( val, _values, result )
641
+ result = safe(val[1])
642
+ result
643
+ end
644
+ .,.,
645
+
646
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 67
647
+ def _reduce_30( val, _values, result )
648
+ result = markup val[0], :op
649
+ result
650
+ end
651
+ .,.,
652
+
653
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 68
654
+ def _reduce_31( val, _values, result )
655
+ result = lookup val[0]
656
+ result
657
+ end
658
+ .,.,
659
+
660
+ # reduce 32 omitted
661
+
662
+ # reduce 33 omitted
663
+
664
+ # reduce 34 omitted
665
+
666
+ # reduce 35 omitted
667
+
668
+ # reduce 36 omitted
669
+
670
+ # reduce 37 omitted
671
+
672
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 76
673
+ def _reduce_38( val, _values, result )
674
+ result = '\\' + val[0]
675
+ result
676
+ end
677
+ .,.,
678
+
679
+ # reduce 39 omitted
680
+
681
+ # reduce 40 omitted
682
+
683
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 79
684
+ def _reduce_41( val, _values, result )
685
+ result = "{#{val[1]}}"
686
+ result
687
+ end
688
+ .,.,
689
+
690
+ # reduce 42 omitted
691
+
692
+ # reduce 43 omitted
693
+
694
+ # reduce 44 omitted
695
+
696
+ # reduce 45 omitted
697
+
698
+ # reduce 46 omitted
699
+
700
+ # reduce 47 omitted
701
+
702
+ # reduce 48 omitted
703
+
704
+ # reduce 49 omitted
705
+
706
+ # reduce 50 omitted
707
+
708
+ # reduce 51 omitted
709
+
710
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 92
711
+ def _reduce_52( val, _values, result )
712
+ result = ""
713
+ result
714
+ end
715
+ .,.,
716
+
717
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 93
718
+ def _reduce_53( val, _values, result )
719
+ result = val[0] + val[1]
720
+ result
721
+ end
722
+ .,.,
723
+
724
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 96
725
+ def _reduce_54( val, _values, result )
726
+ result = define val[2], 0, join(val[4], val[5], val[6])
727
+ result
728
+ end
729
+ .,.,
730
+
731
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 97
732
+ def _reduce_55( val, _values, result )
733
+ result = define val[2], val[5], join(val[7], val[8], val[9])
734
+ result
735
+ end
736
+ .,.,
737
+
738
+ # reduce 56 omitted
739
+
740
+ # reduce 57 omitted
741
+
742
+ # reduce 58 omitted
743
+
744
+ # reduce 59 omitted
745
+
746
+ # reduce 60 omitted
747
+
748
+ # reduce 61 omitted
749
+
750
+ # reduce 62 omitted
751
+
752
+ # reduce 63 omitted
753
+
754
+ # reduce 64 omitted
755
+
756
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 110
757
+ def _reduce_65( val, _values, result )
758
+ result = markup markup(val[2], :array), :group
759
+ result
760
+ end
761
+ .,.,
762
+
763
+ # reduce 66 omitted
764
+
765
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 113
766
+ def _reduce_67( val, _values, result )
767
+ result = val[0] + val[2]
768
+ result
769
+ end
770
+ .,.,
771
+
772
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 115
773
+ def _reduce_68( val, _values, result )
774
+ result = markup val[0], :row
775
+ result
776
+ end
777
+ .,.,
778
+
779
+ # reduce 69 omitted
780
+
781
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 118
782
+ def _reduce_70( val, _values, result )
783
+ result = val[0] + val[2]
784
+ result
785
+ end
786
+ .,.,
787
+
788
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 121
789
+ def _reduce_71( val, _values, result )
790
+ result = markup val[0], :col
791
+ result
792
+ end
793
+ .,.,
794
+
795
+ # reduce 72 omitted
796
+
797
+ # reduce 73 omitted
798
+
799
+ # reduce 74 omitted
800
+
801
+ # reduce 75 omitted
802
+
803
+ # reduce 76 omitted
804
+
805
+ # reduce 77 omitted
806
+
807
+ # reduce 78 omitted
808
+
809
+ # reduce 79 omitted
810
+
811
+ # reduce 80 omitted
812
+
813
+ # reduce 81 omitted
814
+
815
+ # reduce 82 omitted
816
+
817
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 134
818
+ def _reduce_83( val, _values, result )
819
+ result = safe val[0]
820
+ result
821
+ end
822
+ .,.,
823
+
824
+ module_eval <<'.,.,', 'lib/ritex/parser.y', 135
825
+ def _reduce_84( val, _values, result )
826
+ result = safe val[0]
827
+ result
828
+ end
829
+ .,.,
830
+
831
+ # reduce 85 omitted
832
+
833
+ # reduce 86 omitted
834
+
835
+ # reduce 87 omitted
836
+
837
+ # reduce 88 omitted
838
+
839
+ def _reduce_none( val, _values, result )
840
+ result
841
+ end
842
+
843
+ end # class Parser
844
+
845
+ end # module Ritex