Skip to content

Commit

Permalink
fix: parsing of float numbers need strings joined
Browse files Browse the repository at this point in the history
  • Loading branch information
clarete committed Mar 16, 2021
1 parent 7e6034e commit 80b2b35
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
6 changes: 6 additions & 0 deletions templatel-tests.el
Expand Up @@ -1041,6 +1041,12 @@ base-end")))))
(templatel--parser-value s)
'("String" . "fun with Emacs")))))

(ert-deftest expr-value-float ()
(let ((s (templatel--scanner-new "3.14" "<string>")))
(should (equal
(templatel--parser-value s)
'("Number" . 3.14)))))

(ert-deftest expr-value-number ()
(let ((s (templatel--scanner-new "325" "<string>")))
(should (equal
Expand Down
13 changes: 9 additions & 4 deletions templatel.el
Expand Up @@ -1044,10 +1044,15 @@ operator (RATORFN)."
;; GR: FLOAT <- [0-9]* '.' [0-9]+ _
(defun templatel--parser-float (scanner)
"Read float from SCANNER."
(append
(templatel--scanner-zero-or-more scanner (lambda() (templatel--scanner-range scanner ?0 ?9)))
(templatel--scanner-matchs scanner ".")
(templatel--scanner-one-or-more scanner (lambda() (templatel--scanner-range scanner ?0 ?9)))))
(string-to-number
(templatel--join-chars
(append
(templatel--scanner-zero-or-more
scanner (lambda() (templatel--scanner-range scanner ?0 ?9)))
(templatel--scanner-matchs
scanner ".")
(templatel--scanner-one-or-more
scanner (lambda() (templatel--scanner-range scanner ?0 ?9)))))))

;; GR: BIN <- '0b' [0-1]+ _
(defun templatel--parser-bin (scanner)
Expand Down

0 comments on commit 80b2b35

Please sign in to comment.