Class: DeepAlgo::IL::Backend::Latex
Instance Method Summary
collapse
Methods inherited from Generic
#expr, #factor, #number, #terminal
Constructor Details
#initialize ⇒ Latex
Returns a new instance of Latex.
131
132
133
|
# File 'lib/backend_manager.rb', line 131
def initialize
@curr_backend = nil
end
|
Instance Method Details
#add_expr(tree) ⇒ Object
145
146
147
|
# File 'lib/backend_manager.rb', line 145
def add_expr(tree)
tree.elements[0].value(@curr_backend)
end
|
#args(tree) ⇒ Object
237
238
239
240
241
242
243
244
245
246
247
248
|
# File 'lib/backend_manager.rb', line 237
def args(tree)
to_return = ''
tree
.elements[1]
&.elements
&.each do |arg|
to_return = "#{to_return}, \
#{arg.elements[3].value(@curr_backend)}"
end
"#{tree.elements[0].value(@curr_backend)}#{to_return}"
end
|
#assignment(tree) ⇒ Object
149
150
151
152
153
|
# File 'lib/backend_manager.rb', line 149
def assignment(tree)
left = tree.elements[0].value(@curr_backend)
right = tree.elements[4].value(@curr_backend)
"#{left} \\text{equals} #{right}"
end
|
#atom(tree) ⇒ Object
192
193
194
|
# File 'lib/backend_manager.rb', line 192
def atom(tree)
tree.text_value
end
|
#call(tree) ⇒ Object
225
226
227
228
229
|
# File 'lib/backend_manager.rb', line 225
def call(tree)
caller_name = tree.elements[0].value(@curr_backend)
params = tree.elements[4].value(@curr_backend)
"#{caller_name} \\left( #{params} \\right)"
end
|
#color(tree) ⇒ Object
183
184
185
186
|
# File 'lib/backend_manager.rb', line 183
def color(tree)
tree.elements[1].value(@curr_backend)
end
|
#colorcode(tree) ⇒ Object
188
189
190
|
# File 'lib/backend_manager.rb', line 188
def colorcode(tree)
tree.text_value
end
|
#colored(tree) ⇒ Object
177
178
179
180
181
|
# File 'lib/backend_manager.rb', line 177
def colored(tree)
color = "##{tree.elements[0].value(@curr_backend)}"
expr = tree.elements[4].value(@curr_backend)
"\\color{ #{color} }{ #{expr} }"
end
|
#descriptor(tree) ⇒ Object
256
257
258
259
260
261
|
# File 'lib/backend_manager.rb', line 256
def descriptor(tree)
label = tree.elements[2].value(@curr_backend)
items = tree.elements[8].value(@curr_backend)
"\\text{ #{label} } \
\\left\\{\\begin{array}{l} #{items} \\\\ \\end{array}\\right."
end
|
#descriptor_item(tree) ⇒ Object
275
276
277
278
279
280
281
282
|
# File 'lib/backend_manager.rb', line 275
def descriptor_item(tree)
label = tree.elements[4].value(@curr_backend)
assignee = tree
.elements[10]
.elements[0]
.value(@curr_backend)
"\\text{ #{label} } = #{assignee}"
end
|
#descriptor_items(tree) ⇒ Object
263
264
265
266
267
268
269
270
271
272
273
|
# File 'lib/backend_manager.rb', line 263
def descriptor_items(tree)
to_return = ''
tree
.elements[1]
&.elements
&.each do |arg|
to_return = "#{to_return} \\\\ \
#{arg.elements[1].value(@curr_backend)} "
end
"#{tree.elements[0].value(@curr_backend)} #{to_return}"
end
|
#div_expr(tree) ⇒ Object
284
285
286
287
288
|
# File 'lib/backend_manager.rb', line 284
def div_expr(tree)
numerator = tree.elements[6].value(@curr_backend)
denominator = tree.elements[14].value(@curr_backend)
"\\dfrac{ #{numerator} }{ #{denominator} }"
end
|
#document(tree) ⇒ Object
141
142
143
|
# File 'lib/backend_manager.rb', line 141
def document(tree)
tree.elements[0].value(@curr_backend)
end
|
#dotted_expr(tree) ⇒ Object
210
211
212
213
214
215
216
217
218
219
220
221
222
223
|
# File 'lib/backend_manager.rb', line 210
def dotted_expr(tree)
to_return = ''
if !tree.elements[1].nil? && tree.elements[1] != ''
tree
.elements[1]
.elements
.each do |son_expr|
to_return = "#{to_return}. \
#{son_expr.elements[2].value(@curr_backend)}"
end
end
"#{tree.elements[0].value(@curr_backend)}#{to_return}"
end
|
#dotted_terminal(tree) ⇒ Object
231
232
233
234
235
|
# File 'lib/backend_manager.rb', line 231
def dotted_terminal(tree)
first_expr = tree.elements[0].value(@curr_backend)
second_expr = tree.elements[2].value(@curr_backend)
"#{first_expr}.#{second_expr}"
end
|
#generate(tree, curr_backend) ⇒ Object
135
136
137
138
139
|
# File 'lib/backend_manager.rb', line 135
def generate(tree, curr_backend)
@curr_backend = curr_backend
latex = tree.value(@curr_backend)
latex
end
|
#identifier(tree) ⇒ Object
294
295
296
|
# File 'lib/backend_manager.rb', line 294
def identifier(tree)
tree.text_value
end
|
#minus_expr(tree) ⇒ Object
161
162
163
164
165
|
# File 'lib/backend_manager.rb', line 161
def minus_expr(tree)
left = tree.elements[0].value(@curr_backend)
right = tree.elements[4].value(@curr_backend)
"#{left} - #{right}"
end
|
#parenthesed(tree) ⇒ Object
173
174
175
|
# File 'lib/backend_manager.rb', line 173
def parenthesed(tree)
"\\left( #{tree.elements[2].value(@curr_backend)} \\right)"
end
|
#plus_expr(tree) ⇒ Object
155
156
157
158
159
|
# File 'lib/backend_manager.rb', line 155
def plus_expr(tree)
left = tree.elements[0].value(@curr_backend)
right = tree.elements[4].value(@curr_backend)
"#{left} + #{right}"
end
|
#tab_ref(tree) ⇒ Object
250
251
252
253
254
|
# File 'lib/backend_manager.rb', line 250
def tab_ref(tree)
tab = tree.elements[0].value(@curr_backend)
index = tree.elements[6].value(@curr_backend)
"#{tab}_{ #{index} }"
end
|
#text(tree) ⇒ Object
206
207
208
|
# File 'lib/backend_manager.rb', line 206
def text(tree)
tree.text_value
end
|
#time_expr(tree) ⇒ Object
167
168
169
170
171
|
# File 'lib/backend_manager.rb', line 167
def time_expr(tree)
left = tree.elements[0].value(@curr_backend)
right = tree.elements[4].value(@curr_backend)
"#{left} \\times #{right}"
end
|
#unary_minus(tree) ⇒ Object
290
291
292
|
# File 'lib/backend_manager.rb', line 290
def unary_minus(tree)
"-#{tree.elements[2].value(@curr_backend)}"
end
|
#while_cond_expr(tree) ⇒ Object
202
203
204
|
# File 'lib/backend_manager.rb', line 202
def while_cond_expr(tree)
"_{ \\text{ while #{tree.elements[4].value(@curr_backend)} } }"
end
|
#while_expr(tree) ⇒ Object
196
197
198
199
200
|
# File 'lib/backend_manager.rb', line 196
def while_expr(tree)
statements = tree.elements[4].value(@curr_backend)
cond = tree.elements[8].value(@curr_backend)
"\\text{repeat} \\left[ #{statements} \\right]#{cond}"
end
|