From 46402db0fceee23295547c5b47990bc68a1619d9 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Sun, 4 May 2025 20:09:14 +0200 Subject: parse: add recipe-* for elements --- cook/parse.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'cook/parse.scm') diff --git a/cook/parse.scm b/cook/parse.scm index 54ea23c..7092905 100644 --- a/cook/parse.scm +++ b/cook/parse.scm @@ -72,6 +72,16 @@ https://github.com/cooklang/spec/blob/main/EBNF.md (metadata recipe-metadata) (body recipe-body)) +(define (recipe-find pred recipe) + (concatenate + (map (lambda (x) (filter pred x)) + (map step-elements + (filter step? (recipe-body recipe)))))) + +(define recipe-ingredients (cut recipe-find ingredient? <>)) +(define recipe-cookware (cut recipe-find cookware? <>)) +(define recipe-timers (cut recipe-find timer? <>)) + (define (metadata-line-list->hash-table meta-lines) (let ((metadata (make-hash-table))) (for-each (lambda (line) -- cgit v1.2.3