diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2010-09-29 12:09:21 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2010-09-29 12:09:21 -0400 |
commit | ac73b1faea8c6c16e2f8c528e15cf4241855316f (patch) | |
tree | 029d20ec74e373ff3ece422c5b721b6c26db685d /lisp/cedet | |
parent | 2b7ba565a6954bd9258051a13f950a0fc23abc9c (diff) | |
download | emacs-ac73b1faea8c6c16e2f8c528e15cf4241855316f.tar.gz |
Fix errors in CEDET 1.0 merge.
* semantic/tag.el (semantic-tag-version): Bump to 2.0.
* semantic/db-typecache.el (semanticdb-typecache-find-default):
* semantic/imenu.el (semantic-create-imenu-index):
* semantic/grammar.el (semantic--grammar-macro-function-tag):
* semantic/fw.el (semanticdb-without-unloaded-file-searches): Fix
require. Suggested by David Engster.
* semantic/bovine/c-by.el: Regenerate.
* semantic/lex-spp.el (semantic-lex-spp-debug-symbol): New var.
(semantic-lex-spp-enable-debug-symbol): New command
(semantic-lex-spp-value-valid-p)
(semantic-lex-spp-validate-value): New functions
(semantic-lex-spp-symbol-set)
(semantic-lex-spp-symbol-push): Add call to validate value.
(semantic-lex-spp-table-write-slot-value): Instead of erroring on
invalid values during save, just save a nil.
Diffstat (limited to 'lisp/cedet')
-rw-r--r-- | lisp/cedet/ChangeLog | 23 | ||||
-rw-r--r-- | lisp/cedet/semantic/bovine/c-by.el | 115 | ||||
-rw-r--r-- | lisp/cedet/semantic/db-typecache.el | 2 | ||||
-rw-r--r-- | lisp/cedet/semantic/fw.el | 2 | ||||
-rw-r--r-- | lisp/cedet/semantic/grammar.el | 2 | ||||
-rw-r--r-- | lisp/cedet/semantic/imenu.el | 2 | ||||
-rw-r--r-- | lisp/cedet/semantic/lex-spp.el | 33 | ||||
-rw-r--r-- | lisp/cedet/semantic/tag.el | 3 |
8 files changed, 120 insertions, 62 deletions
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 5b75dfb5048..73761b4ee98 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,26 @@ +2010-09-29 Chong Yidong <cyd@stupidchicken.com> + + * semantic/tag.el (semantic-tag-version): Bump to 2.0. + + * semantic/db-typecache.el (semanticdb-typecache-find-default): + * semantic/imenu.el (semantic-create-imenu-index): + * semantic/grammar.el (semantic--grammar-macro-function-tag): + * semantic/fw.el (semanticdb-without-unloaded-file-searches): Fix + require. Suggested by David Engster. + + * semantic/bovine/c-by.el: Regenerate. + +2010-09-29 Eric Ludlam <zappo@gnu.org> + + * semantic/lex-spp.el (semantic-lex-spp-debug-symbol): New var. + (semantic-lex-spp-enable-debug-symbol): New command + (semantic-lex-spp-value-valid-p) + (semantic-lex-spp-validate-value): New functions + (semantic-lex-spp-symbol-set) + (semantic-lex-spp-symbol-push): Add call to validate value. + (semantic-lex-spp-table-write-slot-value): Instead of erroring on + invalid values during save, just save a nil. + 2010-09-25 Chong Yidong <cyd@stupidchicken.com> * ede/linux.el (ede-project-class-files): diff --git a/lisp/cedet/semantic/bovine/c-by.el b/lisp/cedet/semantic/bovine/c-by.el index 09fb42261a4..c33f3fb67f5 100644 --- a/lisp/cedet/semantic/bovine/c-by.el +++ b/lisp/cedet/semantic/bovine/c-by.el @@ -1240,7 +1240,9 @@ (nth 7 vals)) (nth 0 vals) (nth 10 vals) - (nth 4 vals)) + (list + (nth 4 vals)) + (nth 9 vals)) ) (opt-stars opt-class @@ -1262,7 +1264,9 @@ (nth 6 vals)) (nth 0 vals) (nth 9 vals) - (nth 4 vals)) + (list + (nth 4 vals)) + (nth 8 vals)) ) ) ;; end func-decl @@ -1433,13 +1437,11 @@ namespace-symbol opt-bits opt-array - opt-assign ,(semantic-lambda (nth 2 vals) (nth 0 vals) (nth 3 vals) - (nth 4 vals) - (nth 5 vals)) + (nth 4 vals)) ) ) ;; end varname @@ -1484,19 +1486,28 @@ ) ) ;; end variablearg-opt-name + (varname-opt-initializer + (semantic-list) + (opt-assign) + ( ;;EMPTY + ) + ) ;; end varname-opt-initializer + (varnamelist (opt-ref varname + varname-opt-initializer punctuation "\\`[,]\\'" varnamelist ,(semantic-lambda (cons (nth 1 vals) - (nth 3 vals))) + (nth 4 vals))) ) (opt-ref varname + varname-opt-initializer ,(semantic-lambda (list (nth 1 vals))) @@ -2108,74 +2119,64 @@ "\\`[&]\\'") ) ;; end expr-start + (expr-binop + (punctuation + "\\`[-]\\'") + (punctuation + "\\`[+]\\'") + (punctuation + "\\`[*]\\'") + (punctuation + "\\`[/]\\'") + (punctuation + "\\`[&]\\'" + punctuation + "\\`[&]\\'") + (punctuation + "\\`[&]\\'") + (punctuation + "\\`[|]\\'" + punctuation + "\\`[|]\\'") + (punctuation + "\\`[|]\\'") + ) ;; end expr-binop + (expression - (number + (unaryexpression + expr-binop + unaryexpression ,(semantic-lambda (list (identity start) (identity end))) ) - (multi-stage-dereference + (unaryexpression ,(semantic-lambda (list (identity start) (identity end))) ) + ) ;; end expression + + (unaryexpression + (number) + (multi-stage-dereference) (NEW - multi-stage-dereference - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + multi-stage-dereference) (NEW builtintype-types - semantic-list - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (namespace-symbol - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (string-seq - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + semantic-list) + (namespace-symbol) + (string-seq) (type-cast - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (semantic-list - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + expression) (semantic-list - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + expression) + (semantic-list) (expr-start - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - ) ;; end expression + expression) + ) ;; end unaryexpression ) "Parser table.") diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 71b15fdf82a..59ba83fe9d0 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el @@ -403,7 +403,7 @@ TYPE is the datatype to find. PATH is the search path, which should be one table object. If FIND-FILE-MATCH is non-nil, then force the file belonging to the found tag to be loaded." - (if (not (and (featurep 'semanticdb) semanticdb-current-database)) + (if (not (and (featurep 'semantic/db) semanticdb-current-database)) nil ;; No DB, no search (save-excursion (semanticdb-typecache-find-method (or path semanticdb-current-table) diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index 49790861632..811508377b8 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el @@ -315,7 +315,7 @@ FILE, NOWARN, RAWFILE, and WILDCARDS are passed into `find-file-noselect'" (defmacro semanticdb-without-unloaded-file-searches (forms) "Execute FORMS with `unloaded' removed from the current throttle." `(let ((semanticdb-find-default-throttle - (if (featurep 'semanticdb-find) + (if (featurep 'semantic/db-find) (remq 'unloaded semanticdb-find-default-throttle) nil))) ,forms)) diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el index 65365768f98..d99ae0cb0ac 100644 --- a/lisp/cedet/semantic/grammar.el +++ b/lisp/cedet/semantic/grammar.el @@ -1519,7 +1519,7 @@ Return the tag found or nil if not found." (car (semantic-find-tags-by-class 'function (or (semantic-find-tags-by-name name (current-buffer)) - (and (featurep 'semanticdb) + (and (featurep 'semantic/db) semanticdb-current-database (cdar (semanticdb-find-tags-by-name name nil t))))))) diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index e38b50bcd57..465a93a16dd 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el @@ -235,7 +235,7 @@ Optional argument STREAM is an optional stream of tags used to create menus." (setq imenu-default-goto-function 'semantic-imenu-goto-function) (prog1 (if (and semantic-imenu-index-directory - (featurep 'semanticdb) + (featurep 'semantic/db) (semanticdb-minor-mode-p)) (semantic-create-imenu-directory-index (or stream (semantic-fetch-tags-fast))) diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 88b77e50e1d..0b4fa930b1b 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el @@ -173,10 +173,42 @@ The search priority is: (setq semantic-lex-spp-dynamic-macro-symbol-obarray-stack (make-vector 13 0)))) +(defun semantic-lex-spp-value-valid-p (value) + "Return non-nil if VALUE is valid." + (or (null value) + (stringp value) + (and (consp value) + (or (semantic-lex-token-p (car value)) + (eq (car (car value)) 'spp-arg-list))))) + +(defvar semantic-lex-spp-debug-symbol nil + "A symbol to break on if it is being set somewhere.") + +(defun semantic-lex-spp-enable-debug-symbol (sym) + "Enable debugging for symbol SYM. +Disable debugging by entering nothing." + (interactive "sSymbol: ") + (if (string= sym "") + (setq semantic-lex-spp-debug-symbol nil) + (setq semantic-lex-spp-debug-symbol sym))) + +(defmacro semantic-lex-spp-validate-value (name value) + "Validate the NAME and VALUE of a macro before it is set." +; `(progn +; (when (not (semantic-lex-spp-value-valid-p ,value)) +; (error "Symbol \"%s\" with bogus value %S" ,name ,value)) +; (when (and semantic-lex-spp-debug-symbol +; (string= semantic-lex-spp-debug-symbol name)) +; (debug)) +; ) + nil + ) + (defun semantic-lex-spp-symbol-set (name value &optional obarray-in) "Set value of spp symbol with NAME to VALUE and return VALUE. If optional OBARRAY-IN is non-nil, then use that obarray instead of the dynamic map." + (semantic-lex-spp-validate-value name value) (if (and (stringp value) (string= value "")) (setq value nil)) (set (intern name (or obarray-in (semantic-lex-spp-dynamic-map))) @@ -192,6 +224,7 @@ the dynamic map." (defun semantic-lex-spp-symbol-push (name value) "Push macro NAME with VALUE into the map. Reverse with `semantic-lex-spp-symbol-pop'." + (semantic-lex-spp-validate-value name value) (let* ((map (semantic-lex-spp-dynamic-map)) (stack (semantic-lex-spp-dynamic-map-stack)) (mapsym (intern name map)) diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index e9094fcb051..0195a29b66e 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el @@ -53,7 +53,7 @@ (declare-function semantic-fetch-tags "semantic") (declare-function semantic-clear-toplevel-cache "semantic") -(defconst semantic-tag-version "2.0pre7" +(defconst semantic-tag-version "2.0" "Version string of semantic tags made with this code.") (defconst semantic-tag-incompatible-version "1.0" @@ -221,6 +221,7 @@ See also the function `semantic-ctxt-current-mode'." ;; beginning of TAG. (or (and (>= (point) start) (< (point) end)) (goto-char start)) + (require 'semantic/ctxt) (semantic-ctxt-current-mode))))) (defsubst semantic--tag-attributes-cdr (tag) |