4 ms·
Here's an excerpt (which is in a map passed to peg/compile) for numeric parsing: :nonzero-int (* (range "19") (any (range "09"))) :int (+ "0" :nonzero-
by afranchuk 2y ago
Here's an excerpt (which is in a map passed to peg/compile) for numeric parsing:
:nonzero-int (* (range "19") (any (range "09")))
:int (+ "0" :nonzero-int)
:decimal (cmt (* (? (<- :int)) "." (<- (some (range "09")))) ,parse-decimal)
:fraction (cmt (\* (? (\* (number :nonzero-int) :s+)) (number :nonzero-int)
"/" (number :nonzero-int)) ,parse-fraction)
:integer (cmt (number :nonzero-int) ,parse-integer)
:num (+ :decimal :fraction :integer)