Method: Unitsml::Parser#parse

Defined in:
lib/unitsml/parser.rb

#parseObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/unitsml/parser.rb', line 15

def parse
  nodes = Parse.new.parse(text)
  transformed = Transform.new.apply(nodes)
  formula_value = transformed.is_a?(Formula) ? transformed.value : [transformed].flatten
  formula = Formula.new(
    formula_value,
    explicit_value: @extras_hash,
    root: true,
    orig_text: @orig_text,
    norm_text: text,
  )
  update_units_exponents(formula.value, false)
  formula.value.first.only_instance = true if text.end_with?("-")
  formula
end