|
@@ -67,7 +67,7 @@ description. Move point to the start of the next line."
|
|
|
(setq desc (cons (rpl-edb-get-line) desc)))
|
|
|
(list name (rpl-trim-stack-effect-description (reverse desc)))))
|
|
|
(t
|
|
|
- (list "" "")))))
|
|
|
+ (list nil nil)))))
|
|
|
|
|
|
;;; Parsing keyword lines
|
|
|
;;;
|
|
@@ -175,8 +175,7 @@ flags for this calculator."
|
|
|
(setq entry-description (cons (rpl-edb-consume-description-line) entry-description)))
|
|
|
((eql (char-after) ?.)
|
|
|
;; A keyword line
|
|
|
- (cl-destructuring-bind (keyword &rest params)
|
|
|
- (rpl-edb-consume-keyword-line)
|
|
|
+ (cl-destructuring-bind (keyword &rest params) (rpl-edb-consume-keyword-line)
|
|
|
(cond ((eql keyword :AKA)
|
|
|
(dolist (name params)
|
|
|
(push name entry-names)))
|
|
@@ -189,10 +188,13 @@ flags for this calculator."
|
|
|
;; An identifier/stack-effect line
|
|
|
(when entry-names
|
|
|
(push (list entry-names entry-stack-effect (reverse entry-description) entry-calc-infos) entries))
|
|
|
- (cl-destructuring-bind (name stack-effect)
|
|
|
- (rpl-edb-consume-ident-line)
|
|
|
- (setq entry-names (list name))
|
|
|
- (setq entry-stack-effect stack-effect)
|
|
|
+ (cl-destructuring-bind (name stack-effect) (rpl-edb-consume-ident-line)
|
|
|
+ (cond (name
|
|
|
+ (setq entry-names (list name))
|
|
|
+ (setq entry-stack-effect stack-effect))
|
|
|
+ (t
|
|
|
+ (setq entry-names nil)
|
|
|
+ (setq entry-stack-effect nil)))
|
|
|
(setq entry-calc-infos nil)
|
|
|
(setq entry-description nil)))))
|
|
|
(when entry-names
|
|
@@ -219,8 +221,12 @@ Assumes `rpl-edb-entries' has been set by calling
|
|
|
(let* ((addr-str (cadr calc-info))
|
|
|
(fmt-str (if (caddr calc-info) (caddr calc-info) "%s"))
|
|
|
(flags (cdddr calc-info))
|
|
|
- (stack-str (apply 'concat (mapcar (lambda (s) (concat s "\n")) stack-effect)))
|
|
|
- (descrip-str (apply 'concat (mapcar (lambda (s) (concat s "\n")) description)))
|
|
|
+ (stack-str (concat (car stack-effect)
|
|
|
+ (apply 'concat (mapcar (lambda (s) (concat "\n" s))
|
|
|
+ (cdr stack-effect)))))
|
|
|
+ (descrip-str (concat (car description)
|
|
|
+ (apply 'concat (mapcar (lambda (s) (concat "\n" s))
|
|
|
+ (cdr description)))))
|
|
|
(data (cons stack-str (cons descrip-str (cons addr-str flags)))))
|
|
|
(dolist (name names)
|
|
|
(puthash (format fmt-str name) data table)))))))
|
|
@@ -245,7 +251,7 @@ calculator model, e.g. :48G, :49G etc."
|
|
|
(unless rpl-edb-entries
|
|
|
(rpl-edb-parse-buffer))
|
|
|
(dolist (calculator '(:38G :39G :48G :49G))
|
|
|
- (rpl-edb-make-calculator-data-file rpl-edb-entries calculator)))
|
|
|
+ (rpl-edb-make-calculator-data-file calculator)))
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;;; Functions to read and query calculator data files
|