From 0413dc0cc0b75bb016dce603d5402bc470440142 Mon Sep 17 00:00:00 2001 From: unwox Date: Mon, 23 Dec 2024 22:25:53 +0600 Subject: improve artoftea parsing --- parser/parser.fnl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'parser/parser.fnl') diff --git a/parser/parser.fnl b/parser/parser.fnl index 78df882..e97351f 100644 --- a/parser/parser.fnl +++ b/parser/parser.fnl @@ -137,14 +137,17 @@ (- (+ (peg.P "г") "год") (peg.P "гр")))) :match text))) -(fn guess-weight [text] +(fn guess-weight [text extra-metrics] (if text (let [peg (peg.Ct (anywhere (* (peg.C pegs.number) (maybe " ") - (+ (* (peg.C (+ (peg.P "гр") "кг")) - (+ (peg.P " ") "." "\n" -1))))))] + (+ (* (peg.C (+ (peg.P "гр") "кг" + (if extra-metrics + (table.unpack extra-metrics) + ""))) + (+ (peg.P " ") "\t" "." "\n" -1))))))] (let [result (peg:match text)] (if result (let [[number metric] result] @@ -159,7 +162,7 @@ (* (peg.C pegs.number) (maybe " ") (+ (* (peg.C (+ (peg.P "мл") "л")) - (+ (peg.P " ") "." "\n" -1))))))] + (+ (peg.P " ") "\t" "." "\n" -1))))))] (let [result (peg:match text)] (if result (let [[number metric] result] -- cgit v1.2.3