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