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

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

[elpa] master 0e68d8d 038/215: common/regexp.el: start to DRY regexps


From: Rocky Bernstein
Subject: [elpa] master 0e68d8d 038/215: common/regexp.el: start to DRY regexps
Date: Sat, 30 Jul 2016 14:48:52 +0000 (UTC)

branch: master
commit 0e68d8d19d0d50ec7c73b999fbc433dad62dff4a
Author: rocky <address@hidden>
Commit: rocky <address@hidden>

    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/lang/js.el              |    4 ++++
 3 files changed, 21 insertions(+), 17 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/lang/js.el b/realgud/lang/js.el
index bb5ab38..aeb84a7 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]