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),