branch: externals/parser-generator commit 04eb4d066ccfc9f3d8d5dba553e095d5d1fc3ff7 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Started on test for Example 5.17 --- test/parser-generator-ll-test.el | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el index 4c96e023a9..3558dbacd1 100644 --- a/test/parser-generator-ll-test.el +++ b/test/parser-generator-ll-test.el @@ -151,6 +151,42 @@ ) ) parser-tables))) + (message "Passed Example 5.16") + + ;; TODO Test Example 5.17 here + (parser-generator-set-eof-identifier '$) + (parser-generator-set-e-identifier 'e) + (parser-generator-set-look-ahead-number 2) + (parser-generator-set-grammar + '( + (S A) + (a b) + ( + (S e (a b A)) + (A (S a a) b) + ) + S + ) + ) + (parser-generator-process-grammar) + (let* ((tables + (parser-generator-ll--generate-tables)) + (parser-tables + (parser-generator-ll--generate-parsing-table + tables))) + (message "tables: %S" tables) + (message "parser-tables: %S" parser-tables) + (should + (equal + '( + ( + ((S) nil) + ( + ((a b) reduce () + ) + ) + parser-tables))))) + (message "Passed example 5.17") (message "Passed tests for (parser-generator-ll--generate-parsing-table)")) @@ -200,6 +236,8 @@ nil)) (message "Passed second valid test") + ;; TODO Example 5.19 + (message "Passed tests for (parser-generator-ll--valid-grammar-p)"))