summaryrefslogtreecommitdiff
path: root/parser/parser.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'parser/parser.fnl')
-rw-r--r--parser/parser.fnl11
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]