summaryrefslogtreecommitdiff
path: root/parser/parser.fnl
diff options
context:
space:
mode:
authorunwox <me@unwox.com>2024-12-23 22:25:53 +0600
committerunwox <me@unwox.com>2024-12-23 22:26:10 +0600
commit0413dc0cc0b75bb016dce603d5402bc470440142 (patch)
tree1e739e316507e704f6cddd1602e031cdf21aec3a /parser/parser.fnl
parentc070964e142398f55c01c00b02f12015d886bd5c (diff)
improve artoftea parsing
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]