elpasync pushed a change to branch externals/parser-generator. at 4a3a51d Added FSF copyright headers
This branch includes the following new commits: new b93ab8c My initial commit new b8faa17 FIRSTk and EFFk working new ee0a623 Added TRAVIS and LICENSE new f5bfa40 Fixed typo in README new 6ee548e Updated README new 69bfe16 Removed white-space new e4fd795 Added compilation to test new f9c8348 Updated Travis and Makefil rule name new 85dde51 Added License and Travis build logos new 58798c8 Starting on calculation of valid LK-sets for a valid grammar prefix new 5d9b98c Added functions to validate G and k and tests new fbb8cad Starting a refactor new be557ba More work on refactor new 42d92f1 More refactoring new 5f65cfc More refactoring, using lists instead of string as grammar data type new 1b8f025 More work on validating a grammar structure new 7bc3b70 Updated tests to use new data structure new e644708 Improved validation of grammar syntax new 80cf73d Passing tests for valid-grammar syntax new f648b52 Passing first unit test for FIRST after new data-structure refactor new ab4b4db Passed second FIRST test again new f2791c1 Passed unit test 3 intermediate grammar new 563cbdd Passed FIRST tests for semi-complex grammar new 32e2c15 Fixed bug with e-production new dc78de7 Fixed page comment reference new a4bbb2f Using PDA algorithm for FIRST when β is above 1 symbol new 9d0d9e5 Various debugging new 3e02435 Passing complex 2 test new 1ae36fc Added support for calculating first of a sentential form new 356720c Passing all unit tests using new data structure new f4ba363 Improved README.md new 38c2040 Improved markdown code examples new f940be9 Added list of functions and usage examples new bbbdea3 More improvement of documentation new 8e99d0c Fixed typo new bc1ec12 Improved documentation new 26bf153 Setting look-ahead-number is now separated from setting grammar new b8d6476 Setting look-ahead-number clears cache storage new 2829d36 More work on FOLLOW new 603df44 Added failing unit tests for (parser--sort-list) new e463bae Passing tests for sorting lists new aadb31a Updated README.md about FOLLOW-sets new 0f8b422 Added another unit test for follow function new 840c418 Improved comment about follow function new 0465b58 Improved commenting new f8f5fe2 Started on function to calculate lk-items for a viable prefix new 586a38e More work on algorithm 5.8 new fe94691 Added hash-table for production RHS new e02d5d7 More work on calculating valid LR-items new afa7cb9 Added unit tests for retrieving grammar RHS new 01df803 Improved documentation new 00ffcde Added TODO items new 8d0a93e More work on algorithm new 7e051d3 Algorithm 5.8 completed but not tested new a54061c Debugging of new algorithm new 8e436df More tweaking new a60952c More debugging of new algorithm new 3e1f2b6 Passed first for calculating valid LR-sets for viable prefix γ new 6d2e231 Added two more failing valid LR-set calculation tests new ab0559d More work new 51cab75 More debugging new 44eb5a3 Passing unit test for V(e) and V(S) new 62d06a0 Passing unit test for V(Sa) new 21164b6 Added documentation for (lr-items) new 186d7bb Renamed function lr-items to lr-items-for-prefix new d7f43d7 Sorting lr-items for prefix before return new 15dc472 Added TODO items new ca85ef4 Created TODO items new 9792eeb Added TODO items new a7d1cc0 Updated README new 08b40cd Updated header levels in README new b73c4ed Made e-symbol customizable new 55bf9a9 Removed references to 'e new 32263b7 Added cache to function which calculates LR-items for prefix new 5150b91 Started working on lr-items for grammar function new 5957fad First implementation of generating LR-items for grammar new 59aea4d More tweaking new algorithm new bdbedf4 Suffixes in LR-items that only contain e-identifier are now set as nil new 5da1b28 Added TODO item new ccaf4b5 More stuff new 0e075d7 Fixed issue with algorithm 5.9 new d0c9663 Passing test for distinct LR-items for grammar new 2a3a02d Removed cache for LR-items for prefixes new 7a48197 Removed obsolete variable new 3373881 More work on GOTO-table generation new 7689ec5 More work new 7fe7318 Passed test for distinct LR-items for grammar new fe6037b Generating valid GOTO-table new 79565f4 Fixed sorting of columns in GOTO-table new 3ba5250 Removed debugging stuff new d5284b5 Added algorithm 5.10 new 0304b78 Added a unit-test to invalidate LR-items new c992a54 Added info in README.md about LR-items new ba95bff Started on new algorithm new 043e375 Refactored LR-parser into stand-alone file new 1613e2e Byte-compilation and unit tests working after refactor new daf93e0 Added failing unit test for action tables generation new 31c7ba7 Work on function that generates all possible look-aheads new 83298fe Passing test for function that generates possible look-ahead permutations new e9697ea Added function that tests if a look-ahead is valid or not new 4c75f65 Added TODO items new 53980d4 More documentation new d36051c Parser now creates hash table over productions to their production number new 343fd72 Some parts of the action-table is generated new 882d725 Added TODO item new 65d9ce2 Fixed a bug with E-FREE-FIRST function and function that validates a set of LR-items new 4f81d98 Sorting each row in action-table new 6f524ed Various stuff new e3d3007 Tweaking of action-table generation for canonical LR-parser new 62f54f1 Added failing unit test for e-free-first function new d7daabf Fixed bug with e-free-first function new b2a0d71 Passed test for action-table generation new 79c06fd Added error signal if no parser action or LR-item set is found new 2be434c Removed obsolete debug messages new ee0ef5d Added failing unit test for Algorithm 5.7 new 1c1177f More work on LR-parser algorithm new e88abf0 More work on parser, added error-handling new 9db14cd Added TODO items new 53c09f7 Added hash-table for productions indexed by production-number new 6d323a4 Implemented reduce action of LR-parser algorithm new c667e18 Work on shift action in parsing algorithm new d435e50 Passing unit test for LR-parse new 89d128c Added TODO item new 9b44827 Optimized LR-parser with hash-tables new b0e9111 Started on lex-analyzer function new 5784f3f Updated README with link to separate document for grammar new 01fc56f Updated list of grammars new fab7e46 Fixed link to LRk grammar new 58e5806 Renamed plugin from parser to parser-generator new 8328ab3 Added unit test for failing LRk Grammar Parse new edfb7b4 Moved lex-analyzer to separate file new bd06863 LR-parser now uses lex-analyzer for parsing new 4ef0430 White-space fix new 0416ca9 Added information about lex-analyzer in README new b756e1a Added example of parsing using LR algorithm new b2fd896 Added support for indexed tokens new 4746c64 Updated example for LR parse with indexed tokens new e89a740 Fixed bug with goto-table generation were tokens were strings new cee559d Added separate document for lexical analysis documentation new d14d427 Moved more about lex-analysis to separate document new 04a3ec5 Added separate file for syntax analysis new de0ed95 Updated README.md new 0695275 More updates to docs new fa7089e Re-factored lex analyzer function to not use length argument new 71e4eaa Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator new 1613e89 Added lex-analyzer get function new 5c8a7a5 Preparations for SDT support new 0e54a88 Optimized away one global variable new 8cda060 Made some functions public new c1d3707 Passing test for including SDT in Produductions new 044f33a Added more support for SDT new 173fe94 Preparations for translation new 60e9c8a Preparations for translation-support in LR-parser new 7ba32ff Only save translation if it produces anything new 96f128f More various stuff new 7eb9a4a Fixed issue with indexing productions when they have SDT new fdbdff7 Added unit test for SDT in LR-parser new 19667b3 Added failing unit test for translation new 1b17ef8 Added another unit tests for translations new 2d56ab0 Made separate functions for parse and translate in LR-parser new f621e77 Preparations for testing incremental parse new a586a0e More work on incremental parsing new 944819d More debugging incremental parsing new 668e738 More work on tests for incremental parse new 7cfdea2 Passing tests for incremental lexer new a8a4e7f Minor fix new 04fdc96 Added unit-test for incremental translations new ac7a9ab Added TODO items new c0310bf Added error-handling to lexical analyser new fa6237a Added TODO items new 71f03cc Updated example new a18a23d Updated info about SDT and SA new a31da28 Updated Parser WIP items new 744fdf6 Added TODO item new b072fdd Passed test for trailing e-identifier in EFF function new d360e8a Added failing unit test for FIRST function with starting e-identifier new 0b72792 Added failing unit tests for FIRST new 181b499 Fixed bug in FIRST generation where multiple equal LHS:s new c4455db Added TODO-item new d6afd0b Added TODO items new 84ffb4e f-set max index is now set depending on if all non-terminals have been expanded or not new bbcb22f Optimized memory usage for f-sets new e2f4347 More work on f-set generation with e-identifiers new dfbd97f More tweaking of f-set generation new 4811521 Various tweakings new 7b6c1dc First function passing first complex grammar test new 046e239 Passing first 3 complex tests for first new 7e96f9d Passing all unit tests for first function new aaec6fa Work on e-free first tests new 7a90a75 Updated max interation count new 4aeed22 Passed tests for e-free first function new 796b41b Passed unit tests for follow function new 33634dd Passing all tests after refactor new ba8e501 Added failing first test with complex case new 18d7c63 Added new function to merge lists of terminals new fe10d4a Passed tests for first 3 and first 4 of complex grammar new c1cdf20 Fixed issue with lex analyzer reached end of input new 922033f Various stuff new 1818b9d Added error in action-tables generation if no accept action is found new d7ad86c Added TODO item for LRk Canonical Parser new 71d213b More work on Canonical LR(k) Parser new 60d9968 Fixed valid look-ahead with k above 1 new 4cba5aa Made new TODO items new ef60d96 Added failing test for new function the generates grammar prefixes new 7a175a8 Passed first unit test for grammar prefixes new 38223d3 Passed tests for generating grammar prefixes new 13d76ae Passed tests for generating list permutations of length k new 8a6b752 Starting on adding support for LR k > 1 parser new 069bf34 Added test for new helper function list of symbol new 76e30f1 Sorted lines in test file new 06f8d37 More work on debugging LRk parser with k > 1 new 517ed12 Passing some more unit tests after refactor new 98c9d94 Debugging parse with look-ahead > 1 new 172d530 Improved handling of production LHS to enable multiple symbols new 2b0d5b8 More debugging new 640feed Passing all tests for canonical LRk Parser with k = 1 new 446cbe9 Refactored unit tests and separated k=2 case new e5aa179 Some fixes for LRk parser k > 1 new 2a9a23e More debugging new 54857e4 Added failing unit test for translation via LRk new ddd5967 Passed test for nested translations new a96ab3a More debugging LR k > 1 new d604092 Added failing unit test for e-free-first function new bc817d1 Passing all tests for k=1 again new fbc8f8b Removed dependency of hash-table of terminals for LR parser new c8c130e Improved error messages new 783ea61 Added translation-symbol-table to incremental parser and translater new 439d894 Passed all LR k=1 tests with more work on generalized solution new 47fb35e More work on a more generalized LR Parser new 01173e2 Added EOF identifier, passing all unit tests new 9b6e076 Using lowercase epsilon for e-identifier comment new 870eca2 Reduced depth of GOTO-table to always use one symbol new 5032a77 Fixed typo in Lex Analyzer error new a516e3f Started on new test for LR(2) Parser new 5b45b2b Improved comments new b2f1d7a More debugging k > 1 new 3807a72 Added failing unit test for LR-items k=2 new 36701c0 Optimized closure algorithm to only use possible next-symbols instead of iterating all symbols new c2d2d0d Fixed FIRST calculating when building lr-item sets new a76bb98 Added comments new 80f99cf Added failing unit test for lr-items set k=2 new 16f6586 Fixed bug in lr-item generation were look-ahead was disregarded new 6845262 Passed GOTO-tables k=2 new d49f74f Added failing test for action-tables LRk parser k=2 new 53ae129 Commented out useless code new e1315c3 Updated so E-FREE-FIRST(x) only uses E-FREE-FIRST on first symbol new 03ca2e9 Look-ahead generation now supports EOF symbol new d1f4682 Added a function that converts a FIRST-item to a look-ahead item new 07320b9 Updated test-case k=2 new fe05328 Passed unit tests for LRk parser k=2 new b2193b2 GOTO-items now only contain one symbol in parse function new 40473d3 Fixed bug with data in full look-ahead in parse function new a796d8d Added another passing unit test for k=2 new 06c09bc Removed commented-out code new 3a0d4cd Added translation test for LRk=2 new d147355 Fixed a bug in processing production RHS when loading symbols new 40907b7 white-space fixes new 3e096f7 Improved translation handling for each production new 96cd5de Improved validation of grammar structure new 37d9fcb Improved documentation new 24e96cb Improved description of LRk new 16bb2d8 Added translation example LRk parser new 56363c1 Fixed last TODO items new b80fc6e Updated README new 0f8aa1d Updated LRk README new 3563720 Updated docs about lexical analysis new 08b696f Fixed typo in doc about token new 1b9d8db Improved wording about lexical analysis new bbdbd18 Started on test for LR Parse k=0 new 8e3084b More work LRk parser k = 0 new 1879cb0 Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator new 58190dc LR Parser k=0 building correct LR items new 412fd2a Passing generation of GOTO-table for LR(0) grammar new bc23604 Fixed look-ahead, first and e-free-first with k = 0 new 175a579 Passed test for generation action-table LR(0) grammar new 3615fad Fixed issue with lex-analyzer in LR(0) Parser new bd887ff LR(0) Parser passing translation test new cbf9e07 Added documentation about LR(0) Parser new 3e9b4ee Improved README new f0cd9f6 Started on test for export parser feature new d173c1e More work on exporting parser as code function new 732cd78 Constants and variables are exported correctly new 852f969 Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator new 500d082 Added Lex-Analyzer Rest Function to export new af71d8b Lex-analyzer is now exported new 2920af5 Parser is exported but helper-functions are missing still new cecf8fd More TODO items new cf42e67 Exported parser passes test new e904d46 Moved LR-parser exporter to stand-alone file and added documentation about export new ecbbf21 Added test for exported translator new 688e685 Lex-analyzer index is now buffer-local variable new ac7207a Passed translate test on exported parser new 0702765 Added incremental unit test for exported parser/translator new 0d6d46d Debugging incremental issue with exported translator new 1e0418d Incremental parse and translate of exported parser passes tests new 099304e Some coding-styling fixes new 5a2dbb3 Removed unnecessary debug outputs new 7584880 Added failing unit test for calculating FIRST in grammar with cycles new d0d3201 FIRST calculation now handles cyclic productions new 99b531f Made some cpu complexity optimizations new fa43f05 More cpu optimizations new c4c68b2 Added progress-indicator to goto-table generation new f338734 Improved output of progress new 552c0c5 Using better hash-key for goto-tables generation new a86c658 Improved output new 5145cda Improved hash-key integrity for LRk Parser new a65b652 Added TODO-items new 586789d Added cache to first calculation new 17c36f8 Added cache to lr-items for prefix function new 61dfc74 Added TODO-item new c886537 Using references for distinct goto-tables to optimize memory usage new b6e2e64 Passing tests after memory optimization of LR parser new 2227cae Moved validation of valid lr-item set to generation of goto-tables new 9a3240b Fixed bug with error throwing on false lr item sets new dcbbdee Started on support for symbol attributes new 0c1b8b6 Passing tests for symbol attributes new ea898ce Fixed code-styling new 04c360b LR-items set validation now supports symbols with attributes new 5f13406 More work on supporting LR-grammar with precedence attributes new f371e2d Added failing test for conflict new 06bff4b Improved validation of conflict-resolution using attributes new 236a124 More work on resolving conflicts new ae51103 Passing test for resolving conflict using precedence attributes new e56bcff Improved output of productions and action-tables new ea02245 Improved debug output new 2eadec5 Shortened long doc comments new 35d6be3 Added TODO-items new 4d60ed4 Added validation to context-sensitive attributes new ce9ae69 Improved comment new b8a81c5 Added failing test new 989e79e More debugging new 43f3bd4 Fixed issue were non-terminals named as emacs-lisp functions was not accepted in grammar new 8165c55 Conflicting grammar causes expected error new 8092c58 Added global declaration to unit test new 778b96f More work on global precedence declaration new 0523eeb More work on global precedence new fb29641 Passing old context-sensitive precedence example with new structure new feaa9ff Removed debug outputs new 0aed7b0 More work on global precedence in LR(k) parser new 06d23f5 More debugging new cf01b59 Fixed action-table generation with symbols with context-sensitive attributes new b84ed5e Fixed issue with infix calculator translation test new 928b31d More work on infix calculator new 6a4b353 More work on translations new 85d1b49 Infix calculator translation passing some tests new f449039 More debugging new 08e9876 Fixed bug with associating a translation to multiple productions new f213255 Passed all old unit tests again after translation refactor new 886af5c Uncommented export tests until refactor is ok new 99aa5b6 Added more unit tests for calculator new 34f95b3 More debugging infix calculator new c6d3ad2 Infix calculator working as expected without precedence rules new ae18945 Passing some calculations thanks to precedence / associativity new d8fb2da Just white-space fixes new fce14ea Fixed bug with context-sensitive attributes being lost in LR-item generation new bb82646 More debugging new b040d9b Tests for infix calculator working new 21948c8 Fixed lex-analyzer to infix calculator test to support white-space and floats new 3964649 Added more failing unit tests new 6e0e781 More debugging new 2592481 Added TODO notes new 2c262a4 Added new error when there is grammar conflict in action-table generation and no precedence comparison function is defined new 14711d4 Added more debug stuff new f0f2daa Started refactor of context-sensitive attributes new 18b2f7b Added context-sensitive precedence to infix example new a7a9506 Refactored structure of context-sensitive attributes new 4404424 Added test for parsing context-sensitive attributes new 7e1d2fb Added TODO notes new 5a1f09a More work on adding support for production number related precedence new 3170e8d Context-sensitive precedence now avoids conflict-detection new 2ad866c Context-sensitive attribute are now tested through specified comparison function new e4658d9 LR action-table generation is now using context-sensitive precedence resolution for reduce/reduce conflicts new 6aff9d0 Made TODO notes new 1be5fda More work on support for conflict resolution new 9d5df0e More working on trying to get the Infix example working new 8fb8676 More work on Infix math example, passing another test new 98ab0e4 More work on precedence logic in unit tests new 8e462cf Validated generated action and goto-tables after precedence modification new 831a6e6 Made a commentary audit of parse according to GOTO and ACTION tables new bff0e63 Added TODO note new 97b5e59 Comparing precedence of last symbol of production with look-ahead new 5ff13d2 Improvements in test for precedence new 6a7343e Started on refactoring precedence table generation new 8013f69 Unit tests for testing precedence table generation now passes new 9c30f34 More work on refactoring conflict resolution new a8c092d More work on precedence logic new ded7700 Added more test for infix precedence new 21fef5c Passing all tests for infix calculator new c606043 Passing all tests with new precedence generation new 7a3e653 Added test for testing precedence of context-sensitive attribute new aa8a2bf Work on the tests for the exported lr-parser new 9e8b89b More work on exporting LR-parser new 3a178ed Exported LR parser now passes all tests new 4fe014a Updating documentation regarding operator precedence new 53fb785 Verified examples in documentation, added infix notation calculator example new e070522 Fixed broken link in documentation new 7eb8cab Small fixes to documentation about syntax analysis new 843bc57 Fixed invalid reference to parser-generator to fetch translation by production number new 5cb63eb Improve error message of invalid global declaration new f9223ea Added a flag to use shift conflict resolution in cases were precedence is missing new 5b95baf More work on last feature new e447145 Added notes about setting to allow default conflict resolution new 1b2a150 Added failing test for e-identifier in the middle of a rule new aad1a17 Removed unnecessary logic in LR(0) action-table generation new 201bcb1 Improved notes new 4da88bf Added another test for e-identifier in middle of rule new cfa9561 Added TODO item new 72796d0 Fixed bug with FIRST calculation with multiple symbols and e-identifiers new fc48311 Added test for FIRST calculation of multiple symbols and e-identifiers new 9eca533 Added test and implementation of calculating FIRST on multiple symbols were first is a non-terminal that expands into an e-identifier new aafb3cc Passing test for grammar containing e-identifier in middle or a rule new ca21bcd Shortened doc-string new e157091 Fixed error signaling in invalid LR-parser and generated LR-parser new b8de1c4 LR-exporter now supports optional header new 6733b57 Added feature to move lex-analyzer forward new e59baa8 Added move feature of lex-analyzer into exported LR lex-analyzer new 48f109c Fixed typo in exported LR parser new af9ad94 Move lexer flag now affecting global state new 24f3fb9 Lex-analyzer peek look-ahead does not affect global state new c9906f7 Move order of export of LR lex-analyzer new f5a5801 Clarified lex-analyzer exporting necessities new 231bf85 Using (signal) instead of (error) in LR-parser and exported LR-parser when encountering syntax error new 63bd6c0 LR-parser now has SDT as optional feature to speed up plain parses new 9c41807 Code-styling fix new 2481361 Improved readme new 0a3f5f5 Added test for LR(1) PHP 8.0 match grammar new 3657a68 Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator new 29568c3 Added support for copyright text in exported LR-parser new a4c5d9f Syntax-directed translations now have access to terminal data if any is available new ee78a6c LR-parser now passes terminal data to SDT for non-terminals containing only one symbol new da14fbd Passing more metadata about terminals to SDT new 428207c Fixed bug with exported lr-parser with partial translation new 827aa5c Another bug for same thing new 4a3a51d Added FSF copyright headers