# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.11 # from Racc grammer file "". # require 'racc/parser.rb' module EyeOfNewt class Parser < Racc::Parser require 'eye_of_newt/ingredient' def initialize(tokenizer, ingredient = EyeOfNewt::Ingredient.new) @tokenizer = tokenizer @ingredient = ingredient super() end def next_token @tokenizer.next_token end def parse do_parse @ingredient end def to_unit(u) EyeOfNewt::Unit[u] end ##### State transition tables begin ### racc_action_table = [ 9, 9, 10, 17, 18, 17, 24, 9, 20, 11, 23, 14, 14, 9, 17, 28, 9, 30, 31 ] racc_action_check = [ 8, 0, 0, 8, 5, 5, 11, 2, 6, 1, 10, 3, 12, 14, 15, 20, 21, 23, 28 ] racc_action_pointer = [ -1, 9, 5, 5, nil, 0, 5, nil, -2, nil, 2, 6, 6, nil, 11, 9, nil, nil, nil, nil, 8, 14, nil, 14, nil, nil, nil, nil, 15, nil, nil, nil ] racc_action_default = [ -23, -23, -23, -4, -5, -9, -10, -12, -16, -18, -20, -23, -2, -3, -23, -7, -8, -17, -19, -11, -23, -23, -15, -23, 32, -1, -13, -6, -23, -14, -22, -21 ] racc_goto_table = [ 22, 16, 5, 13, 21, 3, 26, 12, 1, 15, 2, 27, 25, 29, 6, 19, 7 ] racc_goto_check = [ 5, 8, 6, 4, 8, 3, 5, 3, 1, 7, 2, 8, 4, 5, 9, 10, 11 ] racc_goto_pointer = [ nil, 8, 10, 5, 0, -8, 2, 4, -4, 14, 9, 16, nil ] racc_goto_default = [ nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, 8 ] racc_reduce_table = [ 0, 0, :racc_error, 3, 10, :_reduce_none, 2, 10, :_reduce_none, 2, 10, :_reduce_none, 1, 10, :_reduce_none, 1, 12, :_reduce_5, 3, 11, :_reduce_none, 2, 11, :_reduce_none, 2, 11, :_reduce_none, 1, 11, :_reduce_none, 1, 15, :_reduce_10, 2, 15, :_reduce_11, 1, 15, :_reduce_12, 2, 13, :_reduce_13, 3, 14, :_reduce_14, 2, 14, :_reduce_15, 1, 14, :_reduce_none, 1, 17, :_reduce_none, 1, 21, :_reduce_none, 1, 16, :_reduce_19, 1, 18, :_reduce_20, 3, 19, :_reduce_21, 3, 20, :_reduce_22 ] racc_reduce_n = 23 racc_shift_n = 32 racc_token_table = { false => 0, :error => 1, :WORD => 2, :NUMBER => 3, :UNIT => 4, :OF => 5, "," => 6, "/" => 7, "." => 8 } racc_nt_base = 9 racc_use_result_var = true Racc_arg = [ racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var ] Racc_token_to_s_table = [ "$end", "error", "WORD", "NUMBER", "UNIT", "OF", "\",\"", "\"/\"", "\".\"", "$start", "ingredient", "quantity", "ingredient_name", "style", "words", "amount", "unit", "of", "number", "fraction", "decimal", "word" ] Racc_debug_parser = false ##### State transition tables end ##### # reduce 0 omitted # reduce 1 omitted # reduce 2 omitted # reduce 3 omitted # reduce 4 omitted def _reduce_5(val, _values, result) @ingredient.name = result result end # reduce 6 omitted # reduce 7 omitted # reduce 8 omitted # reduce 9 omitted def _reduce_10(val, _values, result) @ingredient.quantity = result result end def _reduce_11(val, _values, result) @ingredient.quantity = val[0] + val[1] result end def _reduce_12(val, _values, result) @ingredient.quantity = result result end def _reduce_13(val, _values, result) @ingredient.style = val[1] result end def _reduce_14(val, _values, result) result = val.join(' ') result end def _reduce_15(val, _values, result) result = val.join(' ') result end # reduce 16 omitted # reduce 17 omitted # reduce 18 omitted def _reduce_19(val, _values, result) @ingredient.unit = to_unit(result) result end def _reduce_20(val, _values, result) result = val[0].to_i result end def _reduce_21(val, _values, result) result = val[0].to_f / val[2].to_f result end def _reduce_22(val, _values, result) result = val.join.to_f result end def _reduce_none(val, _values, result) val[0] end end # class Parser end # module EyeOfNewt