Class: Unitsml::Parse
- Inherits:
-
Parslet::Parser
- Object
- Parslet::Parser
- Unitsml::Parse
- Defined in:
- lib/unitsml/parse.rb
Instance Method Summary collapse
- #arr_to_expression(arr, file_name) ⇒ Object
- #extend_exp(rule) ⇒ Object
- #intermediate_exp(rule) ⇒ Object
- #sqrt(rule) ⇒ Object
Instance Method Details
#arr_to_expression(arr, file_name) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/unitsml/parse.rb', line 59 def arr_to_expression(arr, file_name) array = arr&.flatten&.compact&.sort_by(&:length).reverse array&.reduce do |expression, expr_string| expression = str(expression).as(file_name.to_sym) if expression.is_a?(String) expression | str(expr_string).as(file_name.to_sym) end end |
#extend_exp(rule) ⇒ Object
71 72 73 |
# File 'lib/unitsml/parse.rb', line 71 def extend_exp(rule) (extender >> intermediate_exp(rule).as(:sequence)).maybe end |
#intermediate_exp(rule) ⇒ Object
75 76 77 |
# File 'lib/unitsml/parse.rb', line 75 def intermediate_exp(rule) rule | (str("(") >> rule >> str(")")) end |
#sqrt(rule) ⇒ Object
67 68 69 |
# File 'lib/unitsml/parse.rb', line 67 def sqrt(rule) str("sqrt(") >> rule.as(:sqrt) >> str(")") end |