class EyeOfNewt::Parser
Constants
- Racc_arg
- Racc_debug_parser
- Racc_token_to_s_table
Public Class Methods
new(tokenizer, units:, ingredient: nil)
click to toggle source
Calls superclass method
# File lib/eye_of_newt/parser.rb, line 12 def initialize(tokenizer, units:, ingredient: nil) @tokenizer = tokenizer @units = units @ingredient = ingredient || default_ingredient super() end
Public Instance Methods
_reduce_15(val, _values, result)
click to toggle source
reduce 14 omitted
# File lib/eye_of_newt/parser.rb, line 269 def _reduce_15(val, _values, result) @ingredient.names << result result end
_reduce_28(val, _values, result)
click to toggle source
reduce 27 omitted
# File lib/eye_of_newt/parser.rb, line 298 def _reduce_28(val, _values, result) @ingredient.amount = result result end
_reduce_29(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 303 def _reduce_29(val, _values, result) @ingredient.amount = result result end
_reduce_30(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 308 def _reduce_30(val, _values, result) @ingredient.amount = 1 result end
_reduce_31(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 313 def _reduce_31(val, _values, result) @ingredient.unit = to_unit(result) result end
_reduce_32(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 318 def _reduce_32(val, _values, result) @ingredient.unit = to_unit(result) result end
_reduce_33(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 323 def _reduce_33(val, _values, result) @ingredient.style = val[1] result end
_reduce_34(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 328 def _reduce_34(val, _values, result) @ingredient.note = val[1] result end
_reduce_35(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 333 def _reduce_35(val, _values, result) @ingredient.unit_modifier = val[0] result end
_reduce_36(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 338 def _reduce_36(val, _values, result) @ingredient.unit_modifier = val[1] result end
_reduce_37(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 343 def _reduce_37(val, _values, result) result = [val[0], val[2]] result end
_reduce_38(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 348 def _reduce_38(val, _values, result) result = [val[0], val[2]] result end
_reduce_40(val, _values, result)
click to toggle source
reduce 39 omitted
# File lib/eye_of_newt/parser.rb, line 355 def _reduce_40(val, _values, result) result = val[0] + val[1] result end
_reduce_43(val, _values, result)
click to toggle source
reduce 42 omitted
# File lib/eye_of_newt/parser.rb, line 364 def _reduce_43(val, _values, result) result = val.join(' ') result end
_reduce_50(val, _values, result)
click to toggle source
reduce 49 omitted
# File lib/eye_of_newt/parser.rb, line 381 def _reduce_50(val, _values, result) result = val[0].to_i result end
_reduce_51(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 386 def _reduce_51(val, _values, result) result = val[0].to_f / val[2].to_f result end
_reduce_52(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 391 def _reduce_52(val, _values, result) result = val.join.to_f result end
_reduce_none(val, _values, result)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 396 def _reduce_none(val, _values, result) val[0] end
default_ingredient()
click to toggle source
# File lib/eye_of_newt/parser.rb, line 34 def default_ingredient EyeOfNewt::Ingredient.new(amount: 1, unit: @units.default) end
next_token()
click to toggle source
# File lib/eye_of_newt/parser.rb, line 19 def next_token @tokenizer.next_token end
parse()
click to toggle source
# File lib/eye_of_newt/parser.rb, line 23 def parse do_parse @ingredient rescue Racc::ParseError raise InvalidIngredient, @tokenizer.string end
to_unit(u)
click to toggle source
# File lib/eye_of_newt/parser.rb, line 30 def to_unit(u) @units[u] end