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