diff options
Diffstat (limited to 'parser/parser.fnl')
| -rw-r--r-- | parser/parser.fnl | 11 |
1 files changed, 7 insertions, 4 deletions
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] |
