[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master f21ec24: Add a mechanism to specify expected shift/
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master f21ec24: Add a mechanism to specify expected shift/reduce .wy conflicts |
Date: |
Tue, 18 Jun 2019 10:05:13 -0400 (EDT) |
branch: master
commit f21ec24524c705e18674a2e9e4db37b11fa3ebab
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
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.
---
admin/grammars/python.wy | 1 +
lisp/cedet/semantic/grammar.el | 9 ++++++++-
lisp/cedet/semantic/wisent/comp.el | 18 +++++++++++-------
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy
index 082850d..0e926ad 100644
--- a/admin/grammars/python.wy
+++ b/admin/grammars/python.wy
@@ -88,6 +88,7 @@
%package wisent-python-wy
%provide semantic/wisent/python-wy
+%expectedconflicts 4
%{
(declare-function wisent-python-reconstitute-function-tag
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 8ffa4c6..3916142 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))))
diff --git a/lisp/cedet/semantic/wisent/comp.el
b/lisp/cedet/semantic/wisent/comp.el
index 051b898..ff434f5 100644
--- a/lisp/cedet/semantic/wisent/comp.el
+++ b/lisp/cedet/semantic/wisent/comp.el
@@ -2264,24 +2264,28 @@ there are any reduce/reduce conflicts."
:group 'wisent
:type '(choice (const nil) integer))
+(declare-function semantic-grammar-expected-conflicts "semantic/grammar")
+
(defun wisent-total-conflicts ()
"Report the total number of conflicts."
+ (require 'semantic/grammar)
(unless (and (zerop rrc-total)
(or (zerop src-total)
(= src-total (or wisent-expected-conflicts 0))))
(let* ((src (wisent-source))
(src (if src (concat " in " src) ""))
(msg (format "Grammar%s contains" src)))
- (if (> src-total 0)
- (setq msg (format "%s %d shift/reduce conflict%s"
- msg src-total (if (> src-total 1)
- "s" ""))))
+ (when (and (> src-total 0)
+ (not (= rrc-total (semantic-grammar-expected-conflicts))))
+ (setq msg (format "%s %d shift/reduce conflict%s"
+ msg src-total (if (> src-total 1)
+ "s" ""))))
(if (and (> src-total 0) (> rrc-total 0))
(setq msg (format "%s and" msg)))
(if (> rrc-total 0)
- (setq msg (format "%s %d reduce/reduce conflict%s"
- msg rrc-total (if (> rrc-total 1)
- "s" ""))))
+ (setq msg (format "%s %d reduce/reduce conflict%s"
+ msg rrc-total (if (> rrc-total 1)
+ "s" ""))))
(message msg))))
(defun wisent-print-conflicts ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master f21ec24: Add a mechanism to specify expected shift/reduce .wy conflicts,
Lars Ingebrigtsen <=