lib/plurimath/asciimath/transform.rb in plurimath-0.3.8 vs lib/plurimath/asciimath/transform.rb in plurimath-0.3.9
- old
+ new
@@ -764,10 +764,22 @@
Utility.unfenced_value(power),
third_value,
)
end
+ rule(ternary_class: simple(:function),
+ base_value: simple(:base),
+ power_value: simple(:power),
+ third_value: sequence(:third)) do
+ third_value = third.is_a?(Slice) ? nil : third
+ Utility.get_class(function).new(
+ Utility.unfenced_value(base),
+ Utility.unfenced_value(power),
+ Utility.filter_values(third_value),
+ )
+ end
+
rule(unary_class: simple(:function),
intermediate_exp: simple(:int_exp)) do
first_value = if Utility::UNARY_CLASSES.include?(function)
int_exp
else
@@ -817,9 +829,14 @@
end
rule(ternary: simple(:ternary),
expr: sequence(:expr)) do
expr.insert(0, ternary)
+ end
+
+ rule(ternary: simple(:ternary),
+ left_right: simple(:left_right)) do
+ [ternary, left_right]
end
rule(unary_class: simple(:function),
text: simple(:text)) do
Utility.get_class(function).new(