emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/parser-generator 732cd78 282/434: Constants and variabl


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 732cd78 282/434: Constants and variables are exported correctly
Date: Mon, 29 Nov 2021 15:59:58 -0500 (EST)

branch: externals/parser-generator
commit 732cd7809e244b7a743b2d05e4a141585a179d27
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>

    Constants and variables are exported correctly
---
 parser-generator-lr.el | 157 ++++++++++++++++++++++++-------------------------
 1 file changed, 77 insertions(+), 80 deletions(-)

diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 635ee4a..d890d6d 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -80,103 +80,109 @@
       ;; Action-tables
       (insert
        (format
-        "(defconst\n%s-action-tables"
-        namespace))
-      (print
-       parser-generator-lr--action-tables
-       (current-buffer))
-      (insert "\"Generated action-tables.\")\n\n")
+        "(defconst\n  %s-action-tables\n  %s\n  \"Generated 
action-tables.\")\n\n"
+        namespace
+        parser-generator-lr--action-tables))
 
       ;; Goto-tables
       (insert
        (format
-        "(defconst\n%s-goto-tables"
-        namespace))
-      (print
-       parser-generator-lr--goto-tables
-       (current-buffer))
-      (insert "\"Generated goto-tables.\")\n\n")
+        "(defconst\n  %s-goto-tables\n  %s\n  \"Generated goto-tables.\")\n\n"
+        namespace
+        parser-generator-lr--goto-tables))
 
       ;; Table production-number
       (insert
        (format
-        "(defconst\n%s-table-productions-number"
-        namespace))
-      (print
-       parser-generator--table-productions-number
-       (current-buffer))
-      (insert "\"Hash-table of productions indexed by 
production-number.\")\n\n")
+        "(defconst\n  %s-table-productions-number\n  %s\n  \"Hash-table of 
productions indexed by production-number.\")\n\n"
+        namespace
+        parser-generator--table-productions-number))
 
       ;; Table look-aheads
       (insert
        (format
-        "(defconst\n%s-table-look-aheads"
-        namespace))
-      (print
-       parser-generator--table-look-aheads-p
-       (current-buffer))
-      (insert "\"Hash-table of valid look-aheads.\")\n\n")
+        "(defconst\n  %s-table-look-aheads\n  %s\n  \"Hash-table of valid 
look-aheads.\")\n\n"
+        namespace
+        parser-generator--table-look-aheads-p))
 
       ;; Table terminals
       (insert
        (format
-        "(defconst\n%s-table-terminal-p"
-        namespace))
-      (print
-       parser-generator--table-non-terminal-p
-       (current-buffer))
-      (insert "\"Hash-table of valid terminals.\")\n\n")
+        "(defconst\n  %s-table-terminal-p\n  %s\n  \"Hash-table of valid 
terminals.\")\n\n"
+        namespace
+        parser-generator--table-non-terminal-p))
 
       ;; Table non-terminals
       (insert
        (format
-        "(defconst\n%s-table-non-terminal-p"
-        namespace))
-      (print
-       parser-generator--table-non-terminal-p
-       (current-buffer))
-      (insert "\"Hash-table of valid non-terminals.\")\n\n")
+        "(defconst\n  %s-table-non-terminal-p\n  %s\n  \"Hash-table of valid 
non-terminals.\")\n\n"
+        namespace
+        parser-generator--table-non-terminal-p))
 
       ;; Table translations
       (insert
        (format
-        "(defconst\n%s-table-translations"
+        "(defconst\n  %s-table-translations\n  %s\n  \"Hash-table of 
translations.\")\n\n"
+        namespace
+        parser-generator--table-translations))
+
+      ;; Lex-Analyzer Get Function
+      (insert
+       (format
+        "(defconst\n  %s-lex-analyzer--get-function\n  (lambda %s %s)\n  
\"Lex-Analyzer Get Function.\")\n\n"
+        namespace
+        (nth 2 parser-generator-lex-analyzer--get-function)
+        (nth 3 parser-generator-lex-analyzer--get-function)))
+
+      ;; Lex-Analyzer Function
+      (insert
+       (format
+        "(defconst\n  %s-lex-analyzer--function\n  (lambda %s %s)\n  
\"Lex-Analyzer Function.\")\n\n"
+        namespace
+        (nth 2 parser-generator-lex-analyzer--function)
+        (nth 3 parser-generator-lex-analyzer--function)))
+
+      ;; Lex-Analyzer Reset Function
+      (insert
+       (format
+        "(defconst\n  %s-lex-analyzer--reset-function\n  "
         namespace))
-      (print
-       parser-generator--table-translations
-       (current-buffer))
-      (insert "\"Hash-table of translations.\")\n\n")
+      (if parser-generator-lex-analyzer--reset-function
+          (insert
+           (format
+            "(lambda %s %s)\n"
+            (nth 2 parser-generator-lex-analyzer--reset-function)
+            (nth 3 parser-generator-lex-analyzer--reset-function)))
+        (insert "nil\n"))
+      (insert "  \"Lex-Analyzer Reset Function.\")\n\n")
 
       ;; E-identifier
       (insert
        (format
-        "(defconst\n%s-e-identifier\n'%s\n\"e-identifier\")\n\n"
+        "(defconst\n  %s-e-identifier\n  '%s\n  \"e-identifier\")\n\n"
         namespace
        parser-generator--e-identifier))
 
       ;; EOF-identifier
       (insert
        (format
-        "(defconst\n%s-eof-identifier\n'%s\n\"EOF-identifier.\")\n\n"
+        "(defconst\n  %s-eof-identifier\n  '%s\n  \"EOF-identifier.\")\n\n"
         namespace
         parser-generator--eof-identifier))
 
       ;; Look-ahead number
       (insert
        (format
-        "(defconst\n%s-look-ahead-number"
-        namespace))
-      (print
-       parser-generator--look-ahead-number
-       (current-buffer))
-      (insert "\"Look-ahead number.\")\n\n")
+        "(defconst\n  %s-look-ahead-number\n  %s\n  \"Look-ahead 
number.\")\n\n"
+        namespace
+        parser-generator--look-ahead-number))
 
       (insert "\n;;; Variables:\n\n\n")
 
       ;; Lex-analyzer index
       (insert
        (format
-        "(defvar\n%s-lex-analyzer-index\n0\n\"Current index of 
lex-analyzer.\")\n\n"
+        "(defvar\n  %s-lex-analyzer-index\n  0\n  \"Current index of 
lex-analyzer.\")\n\n"
         namespace))
 
       (insert "\n;;; Functions:\n\n\n")
@@ -186,38 +192,29 @@
       ;; Lex-Analyzer Get Function
       (insert
        (format
-        "(defun\n%s-lex-analyzer-get\n(token)\n\"Get token information.\""
-        namespace))
-      (print
-       parser-generator-lex-analyzer--get-function
-       (current-buffer))
-      (insert ")\n\n")
-
-      ;; Lex-Analyzer Function
-      (insert
-       (format
-        "(defun\n%s-lex-analyzer\n()\n\"Get next token.\""
-        namespace))
-      (print
-       parser-generator-lex-analyzer--function
-       (current-buffer))
-      (insert ")\n\n")
-
-      ;; Lex-Analyzer Reset Function
-      (insert
-       (format
-        "(defun\n%s-lex-analyzer\n()\n\"Reset 
lex-analyzer.\"\n(setq\n%s-lex-analyzer--index\n1\n)"
+        "(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"
+        namespace
         namespace
         namespace))
-      (when
-          parser-generator-lex-analyzer--reset-function
-        (insert "(funcall")
-        (print
-         parser-generator-lex-analyzer--reset-function
-         (current-buffer))
-        (insert ")\n"))
-      (insert ")\n\n")
-
+      (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")
 
       (insert "\n;;; Syntax-Analyzer / Parser:\n\n\n");
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]