lib/plurimath/latex/transform.rb in plurimath-0.8.2 vs lib/plurimath/latex/transform.rb in plurimath-0.8.4

- old
+ new

@@ -7,14 +7,14 @@ rule(over: simple(:over)) { over } rule(number: simple(:num)) { Math::Number.new(num) } rule(power: simple(:power)) { power } rule(unary: simple(:unary)) { Utility.get_class(unary).new } rule(space: simple(:space)) { Math::Function::Text.new(" ") } - rule(operant: simple(:oper)) { Math::Symbol.new(oper) } - rule(symbol: simple(:symbol)) { Math::Symbol.new(symbol) } - rule(lparen: simple(:lparen)) { Math::Symbol.new(lparen) } - rule(rparen: simple(:rparen)) { Math::Symbol.new(rparen) } + rule(operant: simple(:oper)) { Utility.symbols_class(oper, lang: :latex) } + rule(symbol: simple(:symbol)) { Utility.symbols_class(symbol, lang: :latex) } + rule(lparen: simple(:lparen)) { Utility.symbols_class(lparen, lang: :latex) } + rule(rparen: simple(:rparen)) { Utility.symbols_class(rparen, lang: :latex) } rule(limits: simple(:limits)) { limits } rule("\\\\" => simple(:slash)) { Math::Function::Linebreak.new } rule(expression: simple(:expr)) { expr } rule(environment: simple(:env)) { env } rule(ternary: simple(:ternary)) { Utility.get_class(ternary).new } @@ -27,29 +27,27 @@ rule(table_data: simple(:table_data)) { table_data } rule(intermediate_exp: simple(:int_exp)) { int_exp } rule(numeric_values: simple(:value)) do - Math::Symbol.new(value) + Utility.symbols_class(value, lang: :latex) end rule(text: simple(:text)) do Math::Function::Text.new(text) end rule(unicode_symbols: simple(:unicode)) do - Math::Unicode.new(unicode) + Utility.symbols_class(unicode, lang: :latex) end rule(binary: simple(:binary)) do binary.is_a?(Parslet::Slice) ? Utility.get_class(binary).new : binary end rule(symbols: simple(:sym)) do - Math::Symbol.new( - Constants::UNICODE_SYMBOLS[sym.to_sym] || sym, - ) + Utility.symbols_class(sym, lang: :latex) end rule(lparen: simple(:lparen), rparen: simple(:rparen)) do [] @@ -268,19 +266,19 @@ end rule(operant: simple(:operant), subscript: simple(:subscript)) do Math::Function::Base.new( - Math::Symbol.new(operant), + Utility.symbols_class(operant, lang: :latex), subscript, ) end rule(operant: simple(:operant), supscript: simple(:supscript)) do Math::Function::Power.new( - Math::Symbol.new(operant), + Utility.symbols_class(operant, lang: :latex), supscript, ) end rule(sequence: simple(:sequence), @@ -419,31 +417,27 @@ end rule(symbols: simple(:sym), subscript: simple(:subscript)) do Math::Function::Base.new( - Math::Symbol.new( - Constants::UNICODE_SYMBOLS[sym.to_sym] || sym, - ), + Utility.symbols_class(sym, lang: :latex), subscript, ) end rule(numeric_values: simple(:value), subscript: simple(:subscript)) do Math::Function::Base.new( - Math::Symbol.new(value), + Utility.symbols_class(value, lang: :latex), subscript, ) end rule(symbols: simple(:sym), supscript: simple(:supscript)) do Math::Function::Power.new( - Math::Symbol.new( - Constants::UNICODE_SYMBOLS[sym.to_sym] || sym, - ), + Utility.symbols_class(sym, lang: :latex), supscript, ) end rule(intermediate_exp: simple(:int_exp), @@ -463,27 +457,27 @@ end rule(unicode_symbols: simple(:sym), subscript: simple(:subscript)) do Math::Function::Base.new( - Math::Unicode.new(sym), + Utility.symbols_class(sym, lang: :latex), subscript, ) end rule(unicode_symbols: simple(:sym), supscript: simple(:supscript)) do Math::Function::Power.new( - Math::Unicode.new(sym), + Utility.symbols_class(sym, lang: :latex), supscript, ) end rule(numeric_values: simple(:value), supscript: simple(:supscript)) do Math::Function::Power.new( - Math::Symbol.new(value), + Utility.symbols_class(value, lang: :latex), supscript, ) end rule(text: simple(:text), @@ -656,23 +650,23 @@ rule(left_paren: simple(:lparen), expression: simple(:expr), right_paren: simple(:rparen)) do Math::Function::Fenced.new( - lparen, + Utility.symbols_class(lparen, lang: :latex), [expr], - rparen, + Utility.symbols_class(rparen, lang: :latex), ) end rule(left_paren: simple(:lparen), expression: sequence(:expr), right_paren: simple(:rparen)) do Math::Function::Fenced.new( - lparen, + Utility.symbols_class(lparen, lang: :latex), expr, - rparen, + Utility.symbols_class(rparen, lang: :latex), ) end rule(expression: sequence(:expr)) do Math::Formula.new(expr) @@ -753,23 +747,21 @@ rule(symbols: simple(:sym), subscript: simple(:subscript), supscript: simple(:supscript)) do Math::Function::PowerBase.new( - Math::Symbol.new( - Constants::UNICODE_SYMBOLS[sym.to_sym] || sym, - ), + Utility.symbols_class(sym, lang: :latex), subscript, supscript, ) end rule(unicode_symbols: simple(:sym), subscript: simple(:subscript), supscript: simple(:supscript)) do Math::Function::PowerBase.new( - Math::Unicode.new(sym), + Utility.symbols_class(sym, lang: :latex), subscript, supscript, ) end @@ -784,12 +776,12 @@ ), Math::Function::Tr.new( Utility.table_td(second_value), ), ], - "(", - ")", + Plurimath::Math::Symbols::Paren::Lcurly.new, + Plurimath::Math::Symbols::Paren::Rcurly.new, ) else Utility.get_class( binary.to_s.include?("mod") ? "mod" : binary, ).new( @@ -825,12 +817,12 @@ table_data: sequence(:table_data), ending: simple(:ending)) do open_paren = Constants::MATRICES[environment.to_sym] Utility.get_table_class(environment).new( Utility.organize_table(table_data), - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), {}, ) end rule(environment: simple(:environment), @@ -843,24 +835,24 @@ [table_data], column_align: third_value, ) Utility.get_table_class(environment).new( table, - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), Utility.table_options(table), ) end rule(environment: simple(:environment), table_data: simple(:table_data), ending: simple(:ending)) do open_paren = Constants::MATRICES[environment.to_sym] Utility.get_table_class(environment).new( Utility.organize_table([table_data]), - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), ) end rule(environment: simple(:environment), args: sequence(:args), @@ -868,12 +860,12 @@ ending: simple(:ending)) do open_paren = Constants::MATRICES[environment.to_sym] table = Utility.organize_table(table_data, column_align: args) Utility.get_table_class(environment).new( table, - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), Utility.table_options(table), ) end rule(environment: simple(:environment), @@ -883,12 +875,12 @@ third_value = args ? [args] : [] open_paren = Constants::MATRICES[environment.to_sym] table = Utility.organize_table(table_data, column_align: third_value) Utility.get_table_class(environment).new( table, - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), Utility.table_options(table), ) end rule(environment: simple(:environment), @@ -903,12 +895,12 @@ column_align: third_value, options: true, ) Utility.get_table_class(environment).new( table, - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), { asterisk: true }, ) end rule(environment: simple(:environment), @@ -916,33 +908,33 @@ table_data: sequence(:table_data), ending: simple(:ending)) do open_paren = Constants::MATRICES[environment.to_sym] Utility.get_table_class(environment).new( Utility.organize_table(table_data), - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), { asterisk: true }, ) end rule(environment: simple(:env), expression: simple(:expr)) do open_paren = Constants::MATRICES[env.to_sym] Utility.get_table_class(env).new( Utility.organize_table(expr.nil? ? [] : [expr]), - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), {}, ) end rule(environment: simple(:env), expression: sequence(:expr)) do open_paren = Constants::MATRICES[env.to_sym] Utility.get_table_class(env).new( Utility.organize_table(expr.compact), - open_paren, - Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, + Utility.symbols_class(open_paren, lang: :latex, table: true), + Utility.symbols_class(Constants::MATRICES_PARENTHESIS[open_paren&.to_sym]&.to_s, lang: :latex, table: true), {}, ) end rule(substack: simple(:substack),