branch: externals/parser-generator commit bd4e56d341146b943b2e5522e9cb1f4c2161a35a Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Fixed state-based lexer with move operations with new state --- .gitignore | 3 ++- parser-generator-lex-analyzer.el | 2 +- parser-generator-ll-export.el | 2 +- parser-generator-lr-export.el | 12 ++++++++---- test/parser-generator-ll-export-test.el | 2 ++ test/parser-generator-lr-export-test.el | 2 ++ 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 668f3550cc..663c8278b5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ .dir-locals.el flycheck_* .tern-port -*.elc \ No newline at end of file +*.elc +test-*.el* \ No newline at end of file diff --git a/parser-generator-lex-analyzer.el b/parser-generator-lex-analyzer.el index b68106cacd..8d217f4366 100644 --- a/parser-generator-lex-analyzer.el +++ b/parser-generator-lex-analyzer.el @@ -234,7 +234,7 @@ first-token nil first-token-end - nil) + new-state) parser-generator-lex-analyzer--buffered-response) (setq token-start diff --git a/parser-generator-ll-export.el b/parser-generator-ll-export.el index 160acf9d9f..46bf890628 100644 --- a/parser-generator-ll-export.el +++ b/parser-generator-ll-export.el @@ -384,7 +384,7 @@ first-token nil first-token-end - nil) + new-state) %s-lex-analyzer--buffered-response) (setq token-start diff --git a/parser-generator-lr-export.el b/parser-generator-lr-export.el index 7529d70dc7..7007c46b29 100644 --- a/parser-generator-lr-export.el +++ b/parser-generator-lr-export.el @@ -405,7 +405,7 @@ first-token nil first-token-end - nil) + new-state) %s-lex-analyzer--buffered-response) (setq token-start @@ -564,7 +564,9 @@ translation translation-symbol-table-list history) - \"Perform a LR-parse via lex-analyzer, optionally PERFORM-SDT means to perform syntax-directed translation and optioanlly start at INPUT-TAPE-INDEX with PUSHDOWN-LIST, OUTPUT, TRANSLATION, TRANSLATION-SYMBOL-TABLE-LIST and HISTORY.\" + \"Perform a LR-parse via lex-analyzer, optionally PERFORM-SDT means to perform + syntax-directed translation and optioanlly start at INPUT-TAPE-INDEX with + PUSHDOWN-LIST, OUTPUT, TRANSLATION, TRANSLATION-SYMBOL-TABLE-LIST and HISTORY.\" (unless input-tape-index (setq input-tape-index 1)) (unless pushdown-list @@ -1021,7 +1023,8 @@ output translation history) - \"Perform a LR-parse via lex-analyzer, optionally at INPUT-TAPE-INDEX with PUSHDOWN-LIST, OUTPUT, TRANSLATION and HISTORY.\" + \"Perform a LR-parse via lex-analyzer, optionally at INPUT-TAPE-INDEX with + PUSHDOWN-LIST, OUTPUT, TRANSLATION and HISTORY.\" (let ((result (%s--parse nil @@ -1044,7 +1047,8 @@ output translation history) - \"Perform a LR-parse via lex-analyzer, optionally at INPUT-TAPE-INDEX with PUSHDOWN-LIST, OUTPUT, TRANSLATION and HISTORY.\" + \"Perform a LR-parse via lex-analyzer, optionally at INPUT-TAPE-INDEX with + PUSHDOWN-LIST, OUTPUT, TRANSLATION and HISTORY.\" (let ((result (%s--parse t diff --git a/test/parser-generator-ll-export-test.el b/test/parser-generator-ll-export-test.el index 0b13937deb..8eb8fcd338 100644 --- a/test/parser-generator-ll-export-test.el +++ b/test/parser-generator-ll-export-test.el @@ -60,6 +60,7 @@ (let ((export (parser-generator-ll-export-to-elisp "ba"))) (with-temp-buffer (insert export) + (write-file "test-ll-2-exported-parser.el") (eval-buffer) (should (equal @@ -152,6 +153,7 @@ (let ((export (parser-generator-ll-export-to-elisp "ba3"))) (with-temp-buffer (insert export) + (write-file "test-ll-1-exported-parser.el") (eval-buffer) (should (equal diff --git a/test/parser-generator-lr-export-test.el b/test/parser-generator-lr-export-test.el index eb35f2bc46..13549667b4 100644 --- a/test/parser-generator-lr-export-test.el +++ b/test/parser-generator-lr-export-test.el @@ -263,6 +263,7 @@ (parser-generator--debug (message "export:\n%S\n" export)) (insert export) + (write-file "test-lr-1-exported-parser.el") (eval-buffer) (should (equal @@ -333,6 +334,7 @@ (with-temp-buffer (insert export) + (write-file "test-lr-0-exported-parser.el") (eval-buffer) (should (equal