lib/plurimath/html/transform.rb in plurimath-0.3.3 vs lib/plurimath/html/transform.rb in plurimath-0.3.4
- old
+ new
@@ -35,10 +35,15 @@
expression: simple(:expr)) do
[sequence, expr]
end
rule(sequence: simple(:sequence),
+ parse_parenthesis: simple(:parse_paren)) do
+ [sequence, parse_paren]
+ end
+
+ rule(sequence: simple(:sequence),
expression: sequence(:expr)) do
expr.insert(0, sequence)
end
rule(sequence: sequence(:sequence),
@@ -70,10 +75,17 @@
sequence,
],
)
end
+ rule(unary_function: simple(:unary_function),
+ sequence: sequence(:sequence)) do
+ Math::Formula.new(
+ ([unary_function] + sequence),
+ )
+ end
+
rule(text: simple(:text),
expression: simple(:expr)) do
[
Math::Function::Text.new(text),
expr,
@@ -248,10 +260,20 @@
Math::Formula.new(sup_value),
)
end
end
+ rule(sub_sup: simple(:sub_sup),
+ sup_value: sequence(:sup_value),
+ expression: simple(:expression)) do
+ power = Math::Function::Power.new(
+ sub_sup,
+ Math::Formula.new(sup_value),
+ )
+ [power, expression]
+ end
+
rule(lparen: simple(:lparen),
text: simple(:text),
rparen: simple(:rparen)) do
Math::Formula.new([
Math::Symbol.new(lparen),
@@ -264,9 +286,21 @@
sequence: simple(:sequence),
rparen: simple(:rparen)) do
Math::Formula.new([
Math::Symbol.new(lparen),
sequence,
+ Math::Symbol.new(rparen),
+ ])
+ end
+
+ rule(lparen: simple(:lparen),
+ sequence: simple(:sequence),
+ parse_parenthesis: simple(:parse_paren),
+ rparen: simple(:rparen)) do
+ Math::Formula.new([
+ Math::Symbol.new(lparen),
+ sequence,
+ parse_paren,
Math::Symbol.new(rparen),
])
end
rule(lparen: simple(:lparen),