branch: externals/parser-generator commit 21948c8baac9566b41c04631e0e1edb60cab5da2 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Fixed lex-analyzer to infix calculator test to support white-space and floats --- test/parser-generator-lr-test.el | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el index 013e3c1..cfb4c41 100644 --- a/test/parser-generator-lr-test.el +++ b/test/parser-generator-lr-test.el @@ -540,8 +540,15 @@ (point-max)) (goto-char index) + + ;; Skip white-space(s) + (when (looking-at-p "[\t ]+") + (when + (search-forward-regexp "[^\t ]" nil t) + (forward-char -1))) + (cond - ((looking-at "[0-9]+") + ((looking-at "\\([0-9]+\\.[0-9]+\\|[0-9]+\\)") (setq token `(NUM ,(match-beginning 0) . ,(match-end 0)))) @@ -565,7 +572,7 @@ (let ((symbol (buffer-substring-no-properties start end))) (when - (string-match-p "^[0-9]+$" symbol) + (string-match-p "^\\([0-9]+\\.[0-9]+\\|[0-9]+\\)$" symbol) (setq symbol (string-to-number symbol))) @@ -574,7 +581,6 @@ (parser-generator-process-grammar) (parser-generator-lr-generate-parser-tables) - ;; TODO Test functionality here (then move to translate test) (let ((buffer (generate-new-buffer "*buffer*"))) (switch-to-buffer buffer) (kill-region (point-min) (point-max)) @@ -621,7 +627,6 @@ (parser-generator-lr-translate))) (message "Passed 10/5") - (switch-to-buffer buffer) (kill-region (point-min) (point-max)) (insert "8+10/5\n") @@ -845,6 +850,15 @@ (parser-generator-lr-translate))) (message "Passed -33-3 with correct result") + (switch-to-buffer buffer) + (kill-region (point-min) (point-max)) + (insert "4 + 4.5 - (34/(8*3+-3))") + (should + (equal + 6.880952381 + (parser-generator-lr-translate))) + (message "Passed 4 + 4.5 - (34/(8*3+-3)) with correct result") + (kill-buffer)) (message "Passed tests for (parser-generator-lr--parse)"))