summaryrefslogtreecommitdiff
path: root/cook/parse.scm
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2025-05-04 20:09:14 +0200
committerEkaitz Zarraga <ekaitz@elenq.tech>2025-05-04 20:09:14 +0200
commit46402db0fceee23295547c5b47990bc68a1619d9 (patch)
tree5ea56a5e698c1ef850c1ec5912ffd25b54d63171 /cook/parse.scm
parentabf15a6595d5f5ad5700823389992b0efd66f312 (diff)
parse: add recipe-* for elementsHEADmaster
Diffstat (limited to 'cook/parse.scm')
-rw-r--r--cook/parse.scm10
1 files changed, 10 insertions, 0 deletions
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)