branch: externals/parser-generator commit 500d0822626e743fb63173ef368a12883a34a4cb Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Added Lex-Analyzer Rest Function to export --- parser-generator-lr.el | 58 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/parser-generator-lr.el b/parser-generator-lr.el index d890d6d..da4a18f 100644 --- a/parser-generator-lr.el +++ b/parser-generator-lr.el @@ -193,28 +193,50 @@ (insert (format "(defun -%s-lex-analyzer-get-function (token) -\"Get information about TOKEN.\" -(unless %s-lex-analyzer--get-function -(error \"Missing lex-analyzer get function!\")) -(let ((meta-information)) -(condition-case error -(progn -(setq meta-information -(funcall -%s-lex-analyzer--get-function -token)))\n" + %s-lex-analyzer-get-function (token) + \"Get information about TOKEN.\" + (unless + %s-lex-analyzer--get-function + (error \"Missing lex-analyzer get function!\")) + (let ((meta-information)) + (condition-case + error + (progn + (setq + meta-information + (funcall + %s-lex-analyzer--get-function + token)))" namespace namespace namespace)) + (insert " + (error + (error + \"Lex-analyze failed to get token meta-data of %s, error: %s\" + token + (car (cdr error))))) + (unless meta-information + (error \"Could not find any token meta-information for: %s\" token)) + meta-information))\n") + + ;; Lex-Analyzer Reset Function (insert - "(error (error -\"Lex-analyze failed to get token meta-data of %s, error: %s\" -token -(car (cdr error))))) -(unless meta-information -(error \"Could not find any token meta-information for: %s\" token)) -meta-information))\n\n") + (format " +(defun + %s-lex-analyzer-reset + \"Reset Lex-Analyzer.\" + (setq + %s-lex-analyzer--index + 1) + (when + %s-lex-analyzer--reset-function + (funcall + %s-lex-analyzer--reset-function)))\n\n" + namespace + namespace + namespace + namespace)) (insert "\n;;; Syntax-Analyzer / Parser:\n\n\n");