Mercurial > emacs
annotate lisp/cedet/semantic/bovine/debug.el @ 110763:0fe64d68a522
Merge changes made in Gnus trunk.
shr.el: Implement table rendering.
shr.el (shr-make-table): Tweak table generation.
shr.el (shr-make-table): Fix typo.
nnimap.el (nnimap-open-connection): Allow tls as a synonym for ssl.
gnus-util.el (gnus-emacs-completing-read): Mapcar collection to list, for XEmacs.
nnimap.el (nnimap-close-server): Implement.
gnus-salt.el: Remove all gnus-carpal stuff -- it's not useful.
nnir.el (nnir-run-imap): Remove spurious space in search string.
message.el (message-idna-to-ascii-rhs-1): Don't bug out on addresses without @ signs.
gnus-sum.el (gnus-widen-article-window): New variable.
shr.el (browse-url): Required.
shr.el (shr-ensure-paragraph): Don't insert a new newline after empty-ish lines.
shr.el (shr-show-alt-text, shr-browse-image): New commands.
gravatar.el (gravatar-retrieved): kill buffer when retrieved.
shr.el (shr-browse-url, shr-copy-url): New commands.
shr.el (shr-render-td): Protect against too-wide text.
spam-report.el (spam-report-url-ping-plain): Don't query about killing the process.
nnimap.el (nnimap-finish-retrieve-group-infos): Message while waiting for data.
shr.el (shr-tag-blockquote): Ensure paragraph after quote, too.
mml-smime.el: Fix gnus-completing-read usage.
shr.el (shr-get-image-data): Ensure against the cache file missing.
nnimap.el (nnimap-open-connection): Give an error if nnimap-stream is unknown.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Mon, 04 Oct 2010 22:26:51 +0000 |
parents | 1d1d5d9bd884 |
children | 376148b31b5e |
rev | line source |
---|---|
104452
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
1 ;;; semantic/bovine/debug.el --- Debugger support for bovinator |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
2 |
106815 | 3 ;; Copyright (C) 2003, 2009, 2010 Free Software Foundation, Inc. |
104452
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
4 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
5 ;; Author: Eric M. Ludlam <zappo@gnu.org> |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
6 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
7 ;; This file is part of GNU Emacs. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
8 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
9 ;; GNU Emacs is free software: you can redistribute it and/or modify |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
10 ;; it under the terms of the GNU General Public License as published by |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
11 ;; the Free Software Foundation, either version 3 of the License, or |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
12 ;; (at your option) any later version. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
13 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
14 ;; GNU Emacs is distributed in the hope that it will be useful, |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
17 ;; GNU General Public License for more details. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
18 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
19 ;; You should have received a copy of the GNU General Public License |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
20 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
21 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
22 ;;; Commentary: |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
23 ;; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
24 ;; Implementation of the semantic debug support framework for the |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
25 ;; bovine parser. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
26 ;; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
27 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
28 (require 'semantic/debug) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
29 (require 'semantic/find) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
30 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
31 ;;; Code: |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
32 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
33 ;;; Support a frame for the Bovinator |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
34 ;; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
35 (defclass semantic-bovine-debug-frame (semantic-debug-frame) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
36 ((nonterm :initarg :nonterm |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
37 :type symbol |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
38 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
39 "The name of the semantic nonterminal for this frame.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
40 (rule :initarg :rule |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
41 :type number |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
42 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
43 "The index into NONTERM's rule list. 0 based.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
44 (match :initarg :match |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
45 :type number |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
46 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
47 "The index into NONTERM's RULE's match. 0 based..") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
48 (collection :initarg :collection |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
49 :type list |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
50 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
51 "List of things matched so far.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
52 (lextoken :initarg :lextoken |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
53 :type list |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
54 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
55 "A Token created by `semantic-lex-token'. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
56 This is the lexical token being matched by the parser.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
57 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
58 "Debugger frame representation for the bovinator.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
59 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
60 (defun semantic-bovine-debug-create-frame (nonterm rule match collection |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
61 lextoken) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
62 "Create one bovine frame. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
63 NONTERM is the name of a rule we are currently parsing. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
64 RULE is the index into the list of rules in NONTERM. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
65 MATCH is the index into the list of matches in RULE. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
66 For example: |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
67 this: that |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
68 | other thing |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
69 | here |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
70 ; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
71 The NONTERM is THIS. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
72 The RULE is for \"thing\" is 1. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
73 The MATCH for \"thing\" is 1. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
74 COLLECTION is a list of `things' that have been matched so far. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
75 LEXTOKEN, is a token returned by the lexer which is being matched." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
76 (let ((frame (semantic-bovine-debug-frame "frame" |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
77 :nonterm nonterm |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
78 :rule rule |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
79 :match match |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
80 :collection collection |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
81 :lextoken lextoken))) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
82 (semantic-debug-set-frame semantic-debug-current-interface |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
83 frame) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
84 frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
85 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
86 (defmethod semantic-debug-frame-highlight ((frame semantic-debug-frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
87 "Highlight one parser frame." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
88 (let* ((nonterm (oref frame nonterm)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
89 (pb (oref semantic-debug-current-interface parser-buffer)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
90 (start (semantic-brute-find-tag-by-class 'start pb)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
91 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
92 ;; Make sure we get a good rule name, and that it is a string |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
93 (if (and (eq nonterm 'bovine-toplevel) start) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
94 (setq nonterm (semantic-tag-name (car start))) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
95 (setq nonterm (symbol-name nonterm))) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
96 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
97 (semantic-debug-highlight-rule semantic-debug-current-interface |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
98 nonterm |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
99 (oref frame rule) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
100 (oref frame match)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
101 (semantic-debug-highlight-lexical-token semantic-debug-current-interface |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
102 (oref frame lextoken)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
103 )) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
104 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
105 (defmethod semantic-debug-frame-info ((frame semantic-debug-frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
106 "Display info about this one parser frame." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
107 (message "%S" (oref frame collection)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
108 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
109 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
110 ;;; Lisp error thrown frame. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
111 ;; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
112 (defclass semantic-bovine-debug-error-frame (semantic-debug-frame) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
113 ((condition :initarg :condition |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
114 :documentation |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
115 "An error condition caught in an action.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
116 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
117 "Debugger frame representaion of a lisp error thrown during parsing.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
118 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
119 (defun semantic-create-bovine-debug-error-frame (condition) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
120 "Create an error frame for bovine debugger. |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
121 Argument CONDITION is the thrown error condition." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
122 (let ((frame (semantic-bovine-debug-error-frame "frame" |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
123 :condition condition))) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
124 (semantic-debug-set-frame semantic-debug-current-interface |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
125 frame) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
126 frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
127 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
128 (defmethod semantic-debug-frame-highlight ((frame semantic-bovine-debug-error-frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
129 "Highlight a frame from an action." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
130 ;; How do I get the location of the action in the source buffer? |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
131 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
132 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
133 (defmethod semantic-debug-frame-info ((frame semantic-bovine-debug-error-frame)) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
134 "Display info about the error thrown." |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
135 (message "Error: %S" (oref frame condition))) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
136 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
137 ;;; Parser support for the debugger |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
138 ;; |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
139 (defclass semantic-bovine-debug-parser (semantic-debug-parser) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
140 ( |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
141 ) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
142 "Represents a parser and its state.") |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
143 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
144 |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
145 (provide 'semantic/bovine/debug) |
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
146 |
105377 | 147 ;; arch-tag: d1bf98b3-faeb-4dc3-ac34-cac6264fd94e |
104452
688cf3b99678
lisp/cedet/semantic/bovine/c-by.el
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
148 ;;; semantic/bovine/debug.el ends here |