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

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

[elpa] master 0664fb9 037/215: trepanjs/init.el: handle newly added full


From: Rocky Bernstein
Subject: [elpa] master 0664fb9 037/215: trepanjs/init.el: handle newly added fully-qualified paths
Date: Sat, 30 Jul 2016 14:48:51 +0000 (UTC)

branch: master
commit 0664fb95970d3570d5c34ba03f6fba0e2b9e261e
Author: rocky <address@hidden>
Commit: rocky <address@hidden>

    trepanjs/init.el: handle newly added fully-qualified paths
    common/regexp.el: start to DRY regexps
    lang/js.el: term escape is common to nodejs and trepanjs
---
 realgud/common/regexp.el          |    2 ++
 realgud/debugger/nodejs/init.el   |   32 +++++++++++-------------
 realgud/debugger/trepanjs/init.el |   50 ++++++++++++++++++++++++++-----------
 realgud/lang/js.el                |    4 +++
 4 files changed, 57 insertions(+), 31 deletions(-)

diff --git a/realgud/common/regexp.el b/realgud/common/regexp.el
index bc78795..4e9fcec 100644
--- a/realgud/common/regexp.el
+++ b/realgud/common/regexp.el
@@ -35,6 +35,8 @@ output by a debugger inside a process shell"
                       ;; call, return, exception, etc.
 )
 
+(defconst realgud:regexp-captured-num  "\\([0-9]+\\)")
+
 (defvar realgud-pat-hash (make-hash-table :test 'equal)
   "Hash key is the debugger name, a string. The values of a hash entry
   is a realgud-loc-pat struct")
diff --git a/realgud/debugger/nodejs/init.el b/realgud/debugger/nodejs/init.el
index 979dfc1..204444f 100644
--- a/realgud/debugger/nodejs/init.el
+++ b/realgud/debugger/nodejs/init.el
@@ -33,25 +33,15 @@
 backtrace, prompt, etc.  The values of a hash entry is a
 realgud-loc-pat struct")
 
-(defconst realgud:nodejs-term-escape "[[0-9]+[GKJ]"
-  "Escape sequence regular expression pattern nodejs often puts in around 
prompts")
-
-(defconst realgud:nodejs-frame-start-regexp  "\\(?:^\\|\n\\)\\(?:#\\)")
-(defconst realgud:nodejs-frame-num-regexp    "\\([0-9]+\\)")
-(defconst realgud:nodejs-frame-module-regexp "[^ \t\n]+")
-(defconst realgud:nodejs-frame-file-regexp   "[^ \t\n]+")
-(defconst realgud:nodejs-frame-line-regexp   realgud:nodejs-frame-num-regexp)
-(defconst realgud:nodejs-frame-column-regexp realgud:nodejs-frame-num-regexp)
-
-;; Regular expression that describes a nodejs location generally shown
 ;; before a command prompt.
 ;; For example:
 ;;   break in /home/indutny/Code/git/indutny/myscript.js:1
 (setf (gethash "loc" realgud:nodejs-pat-hash)
       (make-realgud-loc-pat
        :regexp (format
-               "\\(?:%s\\)*break in \\([^:]+\\):\\([0-9]*\\)"
-               realgud:nodejs-term-escape)
+               "\\(?:%s\\)*\\(?:break\\|exception\\) in %s:%s"
+               realgud:js-term-escape "\\([^:]+\\)"
+               realgud:regexp-captured-num)
        :file-group 1
        :line-group 2))
 
@@ -60,7 +50,7 @@ realgud-loc-pat struct")
 ;;   debug>
 (setf (gethash "prompt" realgud:nodejs-pat-hash)
       (make-realgud-loc-pat
-       :regexp (format "^\\(?:%s\\)*debug> " realgud:nodejs-term-escape)
+       :regexp (format "^\\(?:%s\\)*debug> " realgud:js-term-escape)
        ))
 
 ;;  Regular expression that describes a "breakpoint set" line
@@ -84,9 +74,17 @@ realgud-loc-pat struct")
 ;;   Removed 1 breakpoint(s).
 (setf (gethash "brkpt-del" realgud:nodejs-pat-hash)
       (make-realgud-loc-pat
-       :regexp "^Removed \\([0-9]+\\) breakpoint(s).\n"
+       :regexp (format "^Removed %s breakpoint(s).\n"
+                      realgud:regexp-captured-num)
        :num 1))
 
+
+(defconst realgud:nodejs-frame-start-regexp  "\\(?:^\\|\n\\)\\(?:#\\)")
+(defconst realgud:nodejs-frame-num-regexp    realgud:regexp-captured-num)
+(defconst realgud:nodejs-frame-module-regexp "[^ \t\n]+")
+(defconst realgud:nodejs-frame-file-regexp   "[^ \t\n]+")
+
+;; Regular expression that describes a nodejs location generally shown
 ;; Regular expression that describes a debugger "backtrace" command line.
 ;; For example:
 ;; #0 module.js:380:17
@@ -104,9 +102,9 @@ realgud-loc-pat struct")
                        "\\(?:" realgud:nodejs-frame-module-regexp " \\)?"
                        "\\(" realgud:nodejs-frame-file-regexp "\\)"
                        ":"
-                       realgud:nodejs-frame-line-regexp
+                       realgud:regexp-captured-num
                        ":"
-                       realgud:nodejs-frame-column-regexp
+                       realgud:regexp-captured-num
                        )
        :num 1
        :file-group 2
diff --git a/realgud/debugger/trepanjs/init.el 
b/realgud/debugger/trepanjs/init.el
index 135fd71..72ce87c 100644
--- a/realgud/debugger/trepanjs/init.el
+++ b/realgud/debugger/trepanjs/init.el
@@ -32,26 +32,19 @@ realgud-loc-pat struct")
 
 (declare-function make-realgud-loc-pat (realgud-loc))
 
-(defconst realgud:trepanjs-term-escape "[[0-9]+[GKJ]"
-  "Escape sequence regular expression pattern trepanjs often puts
-  in around prompts")
-
-(defconst realgud:nodejs-frame-start-regexp  "\\(?:^\\|\n\\)\\(?:#\\)")
-(defconst realgud:nodejs-frame-num-regexp    "\\([0-9]+\\)")
-(defconst realgud:nodejs-frame-module-regexp "[^ \t\n]+")
-(defconst realgud:nodejs-frame-file-regexp   "[^ \t\n]+")
-(defconst realgud:nodejs-frame-line-regexp   realgud:nodejs-frame-num-regexp)
-(defconst realgud:nodejs-frame-column-regexp realgud:nodejs-frame-num-regexp)
+(defconst realgud:trepanjs-file-regexp   "\\([^ \t\n]+\\)\\(?: \\[.*\\]\\)")
 
 ;; Regular expression that describes a trepanjs location generally shown
 ;; before a command prompt.
 ;; For example:
 ;;   break in /home/indutny/Code/git/indutny/myscript.js:1
+;;   exception in /usr/lib/nodejs/module.js [module.js]:362
 (setf (gethash "loc" realgud:trepanjs-pat-hash)
       (make-realgud-loc-pat
        :regexp (format
-               "\\(?:%s\\)*\\(?:break\\|exception\\) in 
\\([^:]+\\):\\([0-9]*\\)"
-               realgud:trepanjs-term-escape)
+               "\\(?:%s\\)*\\(?:break\\|exception\\) in %s:%s"
+               realgud:js-term-escape realgud:trepanjs-file-regexp
+               realgud:regexp-captured-num)
        :file-group 1
        :line-group 2))
 
@@ -67,7 +60,8 @@ realgud-loc-pat struct")
 ;; * 4 var count = 0;
 (setf (gethash "brkpt-set" realgud:trepanjs-pat-hash)
       (make-realgud-loc-pat
-       :regexp "^Breakpoint \\([0-9]+\\) set in file \\(.+\\), line 
\\([0-9]+\\).\n"
+       :regexp (format "^Breakpoint %s set in file \\(.+\\), line %s.\n"
+                      realgud:regexp-captured-num realgud:regexp-captured-num)
        :num 1
        :file-group 2
        :line-group 3))
@@ -86,9 +80,37 @@ realgud-loc-pat struct")
 ;;   Deleted breakpoint 1.
 (setf (gethash "brkpt-del" realgud:trepanjs-pat-hash)
       (make-realgud-loc-pat
-       :regexp "^Deleted breakpoint \\([0-9]+\\).\n"
+       :regexp (format "^Deleted breakpoint %s.\n"
+                      realgud:regexp-captured-num)
        :num 1))
 
+
+(defconst realgud:trepanjs-frame-start-regexp  "\\(?:^\\|\n\\)\\(?: #\\)")
+(defconst realgud:trepanjs-frame-num-regexp    realgud:regexp-captured-num)
+(defconst realgud:trepanjs-frame-module-regexp "[^ \t\n]+")
+
+;;  Regular expression that describes debugger "backtrace" command line.
+;;  e.g.
+;; ## require called from file /usr/lib/nodejs/module.js [module.js] at line 
380:17
+;; ## in file /src/external-vcs/github/trepanjs/example/gcd.js 
[/src/external-vcs/github/trepanjs/example/gcd.js] at line 2:12
+(setf (gethash "debugger-backtrace" realgud:trepanjs-pat-hash)
+      (make-realgud-loc-pat
+       :regexp         (concat realgud:trepanjs-frame-start-regexp " "
+                       realgud:regexp-captured-num " "
+                       "\\(?:" realgud:trepanjs-frame-module-regexp " called 
from file"
+                       realgud:trepanjs-file-regexp
+                       "\\)\\| in file "
+                       realgud:regexp-captured-num
+                       "\\)"
+                       "at line \\(" realgud:regexp-captured-num "\\):"
+                       realgud:regexp-captured-num
+                       )
+       :num 1
+       :file-group 2
+       :line-group 3
+       :char-offset-group 4
+       ))
+
 (defconst realgud:trepanjs-debugger-name "trepanjs" "Name of debugger")
 
 ;; Top frame number
diff --git a/realgud/lang/js.el b/realgud/lang/js.el
index 6ab462f..7d33357 100644
--- a/realgud/lang/js.el
+++ b/realgud/lang/js.el
@@ -21,6 +21,10 @@
 (require-relative-list '("../common/regexp" "../common/loc" "../common/track")
                       "realgud-")
 
+(defconst realgud:js-term-escape "[[0-9]+[GKJ]"
+  "Escape sequence regular expression pattern trepanjs often puts
+  in around prompts")
+
 (declare-function realgud-goto-line-for-pt 'realgud-track)
 
 ;;  Regular expression that describes a Perl Carp backtrace line.



reply via email to

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