branch: externals/parser-generator
commit 500d0822626e743fb63173ef368a12883a34a4cb
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
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");