cjohansson pushed a change to branch externals/parser-generator. from bf7229332f Updated version and date new 89105668e8 Started on LL(k) implementation new 9d6ca94d0e More work on LL(k) parser new 1d1e4e4bf8 More work on LL(k) parser new 6ce0dd9429 Improved function to calculate merge max terminal sets new 878b2900f2 Improved calculation of merged max terminals when one of the set is undefined new 7c10be74b8 Added TODO items new 8c467b1bb1 Added another test for merge max terminal sets new 4cb0a0b941 More work on LL table generation new 29bad0440f More work on LL table generation new 315e40eff8 More work on LL table generation new 1199586dad More work on generating LL item new d397a1d48e Improved variable naming new b09b22c0be Passing test for LL(k) table Example 5.15 new 03a11c4369 Started test for LL(k) parser-table generation new 87435188dd Added function to set EOF-identifier new 52734d7160 Updated TODO items new bab123bdda Added reference to PHP 8.1 new a2a629c16d More work on data structure for LL-tables new 0a86c69ef1 More work on LL-table generation new 542a50d9c1 Remove usage of a hash-table new 34ab0f1718 More various tweaks new 7b77032f71 Parser table generation for LLk now works for productions new fe728f8ad8 Passing test for generating LLk parser table new 221446d647 Started implementation of LLk validation new ab4ce4d668 Tests for validating LLk grammar passing new 064bd259ff Passing LLk validation tests new 04eb4d066c Started on test for Example 5.17 new 3b9977b51b More work on LLk test new f0de6698b9 Added todo item new f23bc217d8 More wrestling new 2869417d78 Made new helper functions to make LL-parsing easier new 6e91a4b498 More work on helper functions new 80dd506b65 More work on LL-helper functions new 23805731c1 More work on LL-parser new 97919972a7 Improved debug message, added TODO item new 5c0bcd5f9a Passing test for LL-table generation example 5.17 new e6f9ac545f Cleanup after byte-compilation new e55a3f8a37 Updated TODO items new 1290048b84 Improved documentation new cf4332ef0e Started on LLk parsing algorithm new f5f7b2c82b Added TODO items new 2e76c4b57e Added TODO items new 57c6fdda2f Passing test for generating LL-parser hash-table new 8cc2a5b315 More work on LLk parsing new 7ee5504003 More work on LLk parser new 8f9e4d4537 Passing 2 parse examples with k=2 new fd2f90dd81 Added TODO-item new 5aeee49bd0 Added another todo note new 4c93e895b3 Added TODO item new fe0decba88 Passed one test for LLk where k=1 new 72bbadddc0 Added TODO items new b37ba1eddf Created TODO item new ec0711fa84 Tweaks on internal functions of LLk parsing new 2e2496d51f Added notes new 7f3c384b6d Passing more LLk tests new 2598402cc7 Added TODO item new ed9933eeba Passing a lot of LLk tests new 0856bb7784 Started on refactor were k=1 will be treated with different algorithm new af3740c46a More refactoring new 3d373f4dfa Updated docs new 020969094c More refactoring new 08ed55d35a More work on k=1 new 87ded78c28 LL(1) parser passes test for generating tables and parsing new 2181545d26 Implemented test for validation of LL(1) grammar new 4051737aeb Added TODO item for LL(k) translation new 4f85cc5616 Passes byte-compilation tests new 7a265c9a84 LL-tests now runs on make tests command new b41b2dbffe Removed debug output new 08af836006 More work on SDT for LL grammar new 234a6ca2db More work on LLk SDT new 566228f16c More work on LLk translation new 1ccc742678 LLk parser passes translation tests new a046c8584d Started on documentation for LL(k) and LL(1) new 1f36aeafdd Updated documentation with translate example for LL(1) grammar new ff261d9a4e Using stack for symbols value in SDT new f07939a440 Added example from Wikipedia and passing test new 5e6ee66f1f Added failing parse tests new de7c45c511 Started with LL-export functions new 7d87a2d154 Implemented exported LL(k) and LL(1) parser new 5be162966b Fixed byte-compilation issue in exported LL parser new 75323b10e5 Merge branch 'feature/llk-parser' new db91a5f203 Removed unused function
Summary of changes: Makefile | 12 +- README.md | 2 +- TODO.md | 8 +- docs/Syntax-Analysis.md | 5 +- docs/Syntax-Analysis/LL1.md | 174 ++++++ docs/Syntax-Analysis/LLk.md | 178 ++++++ parser-generator-ll-export.el | 816 +++++++++++++++++++++++++ parser-generator-ll.el | 1004 +++++++++++++++++++++++++++++++ parser-generator-lr.el | 4 +- parser-generator.el | 266 +++++++- test/parser-generator-ll-export-test.el | 176 ++++++ test/parser-generator-ll-test.el | 943 +++++++++++++++++++++++++++++ test/parser-generator-test.el | 105 +++- 13 files changed, 3641 insertions(+), 52 deletions(-) create mode 100644 docs/Syntax-Analysis/LL1.md create mode 100644 docs/Syntax-Analysis/LLk.md create mode 100644 parser-generator-ll-export.el create mode 100644 parser-generator-ll.el create mode 100644 test/parser-generator-ll-export-test.el create mode 100644 test/parser-generator-ll-test.el