Class: EyeOfNewt::Parser
- Inherits:
-
Racc::Parser
- Object
- Racc::Parser
- EyeOfNewt::Parser
- Defined in:
- lib/eye_of_newt/parser.rb
Constant Summary collapse
- 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", "TEXT", "OF", "OR", "A", "TO_TASTE", "UNIT_MODIFIER", "\",\"", "\"(\"", "\")\"", "\"-\"", "\"\u{2013}\"", "\"/\"", "\".\"", "$start", "ingredient", "quantity", "ingredient_names", "style", "note", "to_taste", "ingredient_name", "ingredient_words", "amount", "unit_modifier", "unit", "numerical_amount", "numerical_range", "text", "number", "fraction", "decimal", "ingredient_word" ]
- Racc_debug_parser =
false
Instance Method Summary collapse
-
#_reduce_15(val, _values, result) ⇒ Object
reduce 14 omitted.
-
#_reduce_28(val, _values, result) ⇒ Object
reduce 27 omitted.
- #_reduce_29(val, _values, result) ⇒ Object
- #_reduce_30(val, _values, result) ⇒ Object
- #_reduce_31(val, _values, result) ⇒ Object
- #_reduce_32(val, _values, result) ⇒ Object
- #_reduce_33(val, _values, result) ⇒ Object
- #_reduce_34(val, _values, result) ⇒ Object
- #_reduce_35(val, _values, result) ⇒ Object
- #_reduce_36(val, _values, result) ⇒ Object
- #_reduce_37(val, _values, result) ⇒ Object
- #_reduce_38(val, _values, result) ⇒ Object
-
#_reduce_40(val, _values, result) ⇒ Object
reduce 39 omitted.
-
#_reduce_43(val, _values, result) ⇒ Object
reduce 42 omitted.
-
#_reduce_50(val, _values, result) ⇒ Object
reduce 49 omitted.
- #_reduce_51(val, _values, result) ⇒ Object
- #_reduce_52(val, _values, result) ⇒ Object
- #_reduce_none(val, _values, result) ⇒ Object
- #default_ingredient ⇒ Object
-
#initialize(tokenizer, units:, ingredient: nil) ⇒ Parser
constructor
A new instance of Parser.
- #next_token ⇒ Object
- #parse ⇒ Object
- #to_unit(u) ⇒ Object
Constructor Details
#initialize(tokenizer, units:, ingredient: nil) ⇒ Parser
Returns a new instance of Parser.
12 13 14 15 16 17 |
# 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 |
Instance Method Details
#_reduce_15(val, _values, result) ⇒ Object
reduce 14 omitted
269 270 271 272 |
# 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) ⇒ Object
reduce 27 omitted
298 299 300 301 |
# 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) ⇒ Object
303 304 305 306 |
# 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) ⇒ Object
308 309 310 311 |
# 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) ⇒ Object
313 314 315 316 |
# 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) ⇒ Object
318 319 320 321 |
# 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) ⇒ Object
323 324 325 326 |
# 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) ⇒ Object
328 329 330 331 |
# 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) ⇒ Object
333 334 335 336 |
# 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) ⇒ Object
338 339 340 341 |
# 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) ⇒ Object
343 344 345 346 |
# 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) ⇒ Object
348 349 350 351 |
# 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) ⇒ Object
reduce 39 omitted
355 356 357 358 |
# 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) ⇒ Object
reduce 42 omitted
364 365 366 367 |
# 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) ⇒ Object
reduce 49 omitted
381 382 383 384 |
# 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) ⇒ Object
386 387 388 389 |
# 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) ⇒ Object
391 392 393 394 |
# 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) ⇒ Object
396 397 398 |
# File 'lib/eye_of_newt/parser.rb', line 396 def _reduce_none(val, _values, result) val[0] end |
#default_ingredient ⇒ Object
34 35 36 |
# File 'lib/eye_of_newt/parser.rb', line 34 def default_ingredient EyeOfNewt::Ingredient.new(amount: 1, unit: @units.default) end |
#next_token ⇒ Object
19 20 21 |
# File 'lib/eye_of_newt/parser.rb', line 19 def next_token @tokenizer.next_token end |
#parse ⇒ Object
23 24 25 26 27 28 |
# 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) ⇒ Object
30 31 32 |
# File 'lib/eye_of_newt/parser.rb', line 30 def to_unit(u) @units[u] end |