summaryrefslogtreecommitdiff
path: root/lisp/cedet/semantic/grammar.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-06-18 15:56:18 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-06-18 15:56:18 +0200
commitd715ae8788e16b22f7f68cb82b51a40ad95c78c2 (patch)
tree38dc3b3f14c2074456e909de00761d5aa57998a3 /lisp/cedet/semantic/grammar.el
parente09fcc1ff33c0643e9100cb5eee5ff351a85fcbb (diff)
downloademacs-d715ae8788e16b22f7f68cb82b51a40ad95c78c2.tar.gz
Add a mechanism to specify expected shift/reduce .wy conflicts
* admin/grammars/python.wy: Set the expected number of shift/reduce conflicts to four. * lisp/cedet/semantic/grammar.el (semantic-grammar-expected-conflicts): New function. * lisp/cedet/semantic/wisent/comp.el (wisent-total-conflicts): Use it to suppress warnings about the expected number of shift/reduce conflicts.
Diffstat (limited to 'lisp/cedet/semantic/grammar.el')
-rw-r--r--lisp/cedet/semantic/grammar.el9
1 files changed, 8 insertions, 1 deletions
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 8ffa4c6d83e..39161420f98 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -277,6 +277,13 @@ foo.by it is foo-by."
(i (string-match (format "\\([.]\\)%s\\'" ext) file)))
(concat (substring file 0 i) "-" ext))))
+(defun semantic-grammar-expected-conflicts ()
+ "Return the number of expected shift/reduce conflicts in the package."
+ (let ((conflicts (semantic-grammar-tag-symbols 'expectedconflicts)))
+ (if conflicts
+ (string-to-number conflicts)
+ 0)))
+
(defsubst semantic-grammar-languagemode ()
"Return the %languagemode value as a list of symbols or nil."
(semantic-grammar-tag-symbols 'languagemode))
@@ -987,7 +994,7 @@ Return non-nil if there were no errors, nil if errors."
(vc-handled-backends nil))
(setq semanticdb-new-database-class 'semanticdb-project-database)
(semantic-mode 1)
- (semantic-grammar-create-package)))
+ (semantic-grammar-create-package t)))
(error
(message "%s" (error-message-string err))
nil))))