module FoodIngredientParser::Strict::Grammar
grammar IngredientSimple include Common include Amount rule ingredient_simple name:( word ( ws+ !amount word )* ) ws? mark:mark <IngredientNode> / name:( word ( ws+ !amount word )* ) <IngredientNode> end rule ingredient_simple_with_amount pre:( '{' ws* )? amount:amount ws+ ing:ingredient_simple <IngredientNode> / pre:( '{' ws* )? amount:amount_simple_percent ws* ing:ingredient_simple <IngredientNode> / ing:ingredient_simple ws* amount:amount post:( ws* '}' )? (ws? mark:mark)? <IngredientNode> / ing:ingredient_simple <IngredientNode> end rule ingredient_simple_e_number name:e_number <IngredientNode> end end
end