[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt 5ab75b7f56 014/323: Add stubs for dissasembly
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt 5ab75b7f56 014/323: Add stubs for dissasembly |
Date: |
Thu, 9 Mar 2023 10:57:50 -0500 (EST) |
branch: externals/beardbolt
commit 5ab75b7f56c7f2c9e675e744d622cc9bb6500da2
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>
Add stubs for dissasembly
---
rmsbolt.el | 97 +++++++++++++++++++++++++++++++-------------------------------
1 file changed, 48 insertions(+), 49 deletions(-)
diff --git a/rmsbolt.el b/rmsbolt.el
index eaf1772cd8..5247984008 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -29,12 +29,6 @@
(require 'subr-x)
(require 'map)
-(defconst +rmsbolt-compile-name+ "rmsbolt-compile")
-
-(defconst +rmsbolt-assembler-pattern+ (rx bol (1+ space)
- "." (1+ (not (any ";")))
- (0+ space) eol))
-
;;; Code:
;;;; Variables:
(defvar rmsbolt-temp-dir nil
@@ -50,6 +44,7 @@
(defvar rmsbolt-filter-asm-directives t)
(defvar rmsbolt-filter-unused-labels t)
(defvar rmsbolt-filter-comment-only t)
+(defvar rmsbolt-dissasemble nil)
;;;; Regexes
@@ -64,9 +59,8 @@
(0+
(any "a-zA-Z0-9$_."))))
(defvar rmsbolt-assignment-def (rx bol (0+ space)
- (group
- (any ".a-zA-Z_$")
- (1+ (any "a-zA-Z0-9$_.")))
+ (group (any ".a-zA-Z_$")
+ (1+ (any "a-zA-Z0-9$_.")))
(0+ space) "="))
(defvar rmsbolt-has-opcode (rx bol (0+ space)
(any "a-zA-Z")))
@@ -305,47 +299,52 @@ int main() {
(setq completed t))))
labels-used)))
-(defun rmsbolt--process-asm-lines (asm-lines)
+(defun rmsbolt--process-dissasembled-lines (asm-lines)
+ )
+
+(cl-defun rmsbolt--process-asm-lines (asm-lines)
"Process and filter a set of asm lines."
- (let ((used-labels (rmsbolt--find-used-labels asm-lines))
- (result nil)
- (prev-label nil))
- (dolist (line asm-lines)
- (let* ((raw-match (or (string-match rmsbolt-label-def line)
- (string-match rmsbolt-assignment-def line)))
- (match (when raw-match
- (match-string 1 line)))
- (used-label (cl-find match used-labels :test #'equal)))
- (cl-tagbody
- ;; End block, reset prev-label and source
- (when (string-match-p rmsbolt-endblock line)
- (setq prev-label nil))
-
- (when (and rmsbolt-filter-comment-only
- (string-match-p rmsbolt-comment-only line))
- (go continue))
-
- ;; continue means we don't add to the ouptut
- (when match
- (if (not used-label)
- ;; Unused label
- (when rmsbolt-filter-unused-labels
- (go continue))
- ;; Real label, set prev-label
- (setq prev-label raw-match)))
- (when (and rmsbolt-filter-asm-directives
- (not match))
- (if (and (string-match-p rmsbolt-data-defn line)
- prev-label)
- ;; data is being used
- nil
- (when (string-match-p rmsbolt-directive line)
- (go continue))))
- (push line result)
- continue)))
- (mapconcat 'identity
- (nreverse result)
- "\n")))
+ (if rmsbolt-dissasemble
+ (rmsbolt--process-dissasembled-lines asm-lines)
+ (let ((used-labels (rmsbolt--find-used-labels asm-lines))
+ (result nil)
+ (prev-label nil))
+ (dolist (line asm-lines)
+ (let* ((raw-match (or (string-match rmsbolt-label-def line)
+ (string-match rmsbolt-assignment-def line)))
+ (match (when raw-match
+ (match-string 1 line)))
+ (used-label (cl-find match used-labels :test #'equal)))
+ (cl-tagbody
+ ;; End block, reset prev-label and source
+ (when (string-match-p rmsbolt-endblock line)
+ (setq prev-label nil))
+
+ (when (and rmsbolt-filter-comment-only
+ (string-match-p rmsbolt-comment-only line))
+ (go continue))
+
+ ;; continue means we don't add to the ouptut
+ (when match
+ (if (not used-label)
+ ;; Unused label
+ (when rmsbolt-filter-unused-labels
+ (go continue))
+ ;; Real label, set prev-label
+ (setq prev-label raw-match)))
+ (when (and rmsbolt-filter-asm-directives
+ (not match))
+ (if (and (string-match-p rmsbolt-data-defn line)
+ prev-label)
+ ;; data is being used
+ nil
+ (when (string-match-p rmsbolt-directive line)
+ (go continue))))
+ (push line result)
+ continue)))
+ (mapconcat 'identity
+ (nreverse result)
+ "\n"))))
;;;;; Handlers
(defun rmsbolt--handle-finish-compile (buffer _str)
- [elpa] branch externals/beardbolt created (now 06fd5a1eee), ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2626732524 003/323: Add filter for assembler directives, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 43f0eac016 004/323: Add support for changing compiler and flags, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 61ccd7a73e 001/323: Initial commit, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b6127c7f67 007/323: Fix error when not filtering for labels, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 38649b53f2 018/323: Relicense to affero GPL, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f04df12d28 011/323: Add config facility for object dumping, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 74b773d370 026/323: Fix crash on quit for real, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a9e5fbfd7a 028/323: Implement line number parsing for disassembled files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 3b6bb5bd75 030/323: Add basic overlays to view matched lines, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 5ab75b7f56 014/323: Add stubs for dissasembly,
ELPA Syncer <=
- [elpa] externals/beardbolt 0a55783f33 029/323: Add skeleton for font-lock, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 8dcd74b511 031/323: Clean up rmsbolt.c by moving starters into helper files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt aea0966e9d 035/323: Don't add binary asm line data when viewing different files, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt c066da01c4 052/323: Fix ocaml def, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 83e29706f5 005/323: Work on porting used label finder, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 58c77d90c3 008/323: Add outshine comments, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 1545531849 006/323: Add initial implementation of filter, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt d604adae64 015/323: Add initial functions for processing binary asm, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt e0bc9fc409 013/323: Fix starters, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 93f3cad769 017/323: Use local variables instead of custom parsing, ELPA Syncer, 2023/03/09