[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r118066: Sync with upstream verilog-mode revision c0
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r118066: Sync with upstream verilog-mode revision c075a492 |
Date: |
Tue, 07 Oct 2014 03:19:19 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 118066
revision-id: address@hidden
parent: address@hidden
author: Wilson Snyder <address@hidden>
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Mon 2014-10-06 20:19:10 -0700
message:
Sync with upstream verilog-mode revision c075a492
* lisp/progmodes/verilog-mode.el (verilog-mode-version): Bump.
(verilog-menu): Add AUTOINSERTLAST.
(verilog-no-indent-begin-re): When `verilog-indent-begin-after-if'
is nil, fix indenting initial/final to match always statements, bug825.
Reported by Tim Clapp.
(verilog-extended-complete-re): Fix indentation of DPI-C imports,
bug557. Reported by ZeDong Mao and Jason Forkey.
(verilog-read-decls): Fix parsing typed interfaces.
Fix AUTOINOUTMODPORT missing types. Reported by Stephan Bourduas.
(verilog-auto-arg-ports): Fix verilog-auto-arg-format single.
(verilog-auto-output-every): Add regexp to AUTOOUTPUTEVERY, bug793.
Reported by Pierre-David Pfister.
(verilog-auto-insert-lisp): Doc fix.
(verilog-auto-insert-last, verilog-auto): Add AUTOINSERTLAST to
allow post-AUTO user fixups, bug826. Reported by Dennis Muhlestein.
(verilog-sk-ovm-class, verilog-sk-uvm-object)
(verilog-sk-uvm-component): Fix missing string keyword in class
skeletons, bug824. Reported by eldad faruhi.
modified:
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/progmodes/verilog-mode.el
verilogmode.el-20091113204419-o5vbwnq5f7feedwu-8207
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-10-06 17:47:56 +0000
+++ b/lisp/ChangeLog 2014-10-07 03:19:10 +0000
@@ -1,3 +1,25 @@
+2014-10-07 Wilson Snyder <address@hidden>
+
+ Sync with upstream verilog-mode revision c075a492.
+ * progmodes/verilog-mode.el (verilog-mode-version): Bump.
+ (verilog-menu): Add AUTOINSERTLAST.
+ (verilog-no-indent-begin-re): When `verilog-indent-begin-after-if'
+ is nil, fix indenting initial/final to match always statements, bug825.
+ Reported by Tim Clapp.
+ (verilog-extended-complete-re): Fix indentation of DPI-C imports,
+ bug557. Reported by ZeDong Mao and Jason Forkey.
+ (verilog-read-decls): Fix parsing typed interfaces.
+ Fix AUTOINOUTMODPORT missing types. Reported by Stephan Bourduas.
+ (verilog-auto-arg-ports): Fix verilog-auto-arg-format single.
+ (verilog-auto-output-every): Add regexp to AUTOOUTPUTEVERY, bug793.
+ Reported by Pierre-David Pfister.
+ (verilog-auto-insert-lisp): Doc fix.
+ (verilog-auto-insert-last, verilog-auto): Add AUTOINSERTLAST to
+ allow post-AUTO user fixups, bug826. Reported by Dennis Muhlestein.
+ (verilog-sk-ovm-class, verilog-sk-uvm-object)
+ (verilog-sk-uvm-component): Fix missing string keyword in class
+ skeletons, bug824. Reported by eldad faruhi.
+
2014-10-06 Stefan Monnier <address@hidden>
* term/w32-win.el: Move all code from 32-common-fns.el here.
=== modified file 'lisp/progmodes/verilog-mode.el'
--- a/lisp/progmodes/verilog-mode.el 2014-09-29 18:14:08 +0000
+++ b/lisp/progmodes/verilog-mode.el 2014-10-07 03:19:10 +0000
@@ -123,7 +123,7 @@
;;; Code:
;; This variable will always hold the version number of the mode
-(defconst verilog-mode-version "2014-05-31-3cd8144-vpo"
+(defconst verilog-mode-version "2014-10-03-c075a49-vpo"
"Version of this Verilog mode.")
(defconst verilog-mode-release-emacs t
"If non-nil, this version of Verilog mode was released with Emacs itself.")
@@ -1474,6 +1474,8 @@
:help "Help on AUTOINPUT - adding inputs from cells"]
["AUTOINSERTLISP" (describe-function
'verilog-auto-insert-lisp)
:help "Help on AUTOINSERTLISP - insert text from a lisp
function"]
+ ["AUTOINSERTLAST" (describe-function
'verilog-auto-insert-last)
+ :help "Help on AUTOINSERTLISPLAST - insert text from a lisp
function"]
["AUTOINST" (describe-function 'verilog-auto-inst)
:help "Help on AUTOINST - adding pins for cells"]
["AUTOINST (.*)" (describe-function 'verilog-auto-star)
@@ -2265,7 +2267,10 @@
;; "\\(assert\\|assume\\|cover\\)\\s-+property\\>"
(defconst verilog-no-indent-begin-re
-
"\\<\\(if\\|else\\|while\\|for\\|repeat\\|always\\|always_comb\\|always_ff\\|always_latch\\)\\>")
+ (eval-when-compile
+ (verilog-regexp-words
+ '( "if" "else" "while" "for" "repeat" "always" "always_comb" "always_ff"
"always_latch"
+ "initial" "final"))))
(defconst verilog-ends-re
;; Parenthesis indicate type of keyword found
@@ -2719,9 +2724,9 @@
(defconst verilog-disable-fork-re "\\(disable\\|wait\\)\\s-+fork\\>")
(defconst verilog-extended-case-re
"\\(\\(unique0?\\s-+\\|priority\\s-+\\)?case[xz]?\\)")
(defconst verilog-extended-complete-re
- (concat
"\\(\\(\\<extern\\s-+\\|\\<\\(\\<pure\\>\\s-+\\)?virtual\\s-+\\|\\<protected\\s-+\\)*\\(\\<function\\>\\|\\<task\\>\\)\\)"
+ (concat
"\\(\\(\\<extern\\s-+\\|\\<\\(\\<\\(pure\\|context\\)\\>\\s-+\\)?virtual\\s-+\\|\\<protected\\s-+\\)*\\(\\<function\\>\\|\\<task\\>\\)\\)"
"\\|\\(\\(\\<typedef\\>\\s-+\\)*\\(\\<struct\\>\\|\\<union\\>\\|\\<class\\>\\)\\)"
-
"\\|\\(\\(\\<import\\>\\s-+\\)?\\(\"DPI-C\"\\s-+\\)?\\(\\<pure\\>\\s-+\\)?\\(function\\>\\|task\\>\\)\\)"
+
"\\|\\(\\(\\<import\\>\\s-+\\)?\\(\"DPI-C\"\\s-+\\)?\\(\\<\\(pure\\|context\\)\\>\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_]*\\s-+=\\s-+\\)?\\(function\\>\\|task\\>\\)\\)"
"\\|" verilog-extended-case-re ))
(defconst verilog-basic-complete-re
(eval-when-compile
@@ -8258,7 +8263,8 @@
(setq typedefed
(if typedefed (concat typedefed " " keywd)
keywd)))
(t (setq vec nil enum nil rvalue nil signed nil
- typedefed nil multidim nil sig-paren paren
+ typedefed keywd ; Have a type
+ multidim nil sig-paren paren
expect-signal 'sigs-var modport nil))))
;; Interface with optional modport in v2k arglist?
;; Skip over parsing modport, and take the interface name as
the type
@@ -10650,6 +10656,7 @@
(indent-to indent-pt)
(while sigs
(cond ((equal verilog-auto-arg-format 'single)
+ (insert space)
(indent-to indent-pt)
(setq space "\n"))
;; verilog-auto-arg-format 'packed
@@ -11816,10 +11823,18 @@
wire tempa = i;
wire tempb = tempa;
wire o = tempb;
- endmodule"
+ endmodule
+
+You may also provide an optional regular expression, in which case only
+signals matching the regular expression will be included. For example the
+same expansion will result from only extracting outputs starting with ov:
+
+ /*AUTOOUTPUTEVERY(\"^ov\")*/"
(save-excursion
;;Point must be at insertion point
(let* ((indent-pt (current-indentation))
+ (params (verilog-read-auto-params 0 1))
+ (regexp (nth 0 params))
(v2k (verilog-in-paren-quick))
(modi (verilog-modi-current))
(moddecls (verilog-modi-get-decls modi))
@@ -11827,6 +11842,11 @@
(verilog-signals-not-in
(verilog-decls-get-signals moddecls)
(verilog-decls-get-ports moddecls)))))
+ (when regexp
+ (setq sig-list (verilog-signals-matching-regexp
+ sig-list regexp)))
+ (setq sig-list (verilog-signals-not-matching-regexp
+ sig-list verilog-auto-output-ignore-regexp))
(verilog-forward-or-insert-line)
(when v2k (verilog-repair-open-comma))
(when sig-list
@@ -12417,9 +12437,13 @@
(defun verilog-auto-insert-lisp ()
"Expand AUTOINSERTLISP statements, as part of \\[verilog-auto].
-The Lisp code provided is called, and the Lisp code calls
-`insert` to insert text into the current file beginning on the
-line after the AUTOINSERTLISP.
+The Lisp code provided is called before other AUTOS are expanded,
+and the Lisp code generally will call `insert` to insert text
+into the current file beginning on the line after the
+AUTOINSERTLISP.
+
+See also AUTOINSERTLAST and `verilog-auto-insert-last' which
+executes after (as opposed to before) other AUTOs.
See also AUTO_LISP, which takes a Lisp expression and evaluates
it during `verilog-auto-inst' but does not insert any text.
@@ -12476,6 +12500,20 @@
(setq verilog-scan-cache-tick nil) ;; Clear cache; inserted unknown text
(verilog-delete-empty-auto-pair))))
+(defun verilog-auto-insert-last ()
+ "Expand AUTOINSERTLAST statements, as part of \\[verilog-auto].
+The Lisp code provided is called after all other AUTOS have been
+expanded, and the Lisp code generally will call `insert` to
+insert text into the current file beginning on the line after the
+AUTOINSERTLAST.
+
+Other than when called (after AUTOs are expanded), the functionality
+is otherwise identical to AUTOINSERTLISP and `verilog-auto-insert-lisp' which
+executes before (as opposed to after) other AUTOs.
+
+See `verilog-auto-insert-lisp' for examples."
+ (verilog-auto-insert-lisp))
+
(defun verilog-auto-sense-sigs (moddecls presense-sigs)
"Return list of signals for current AUTOSENSE block."
(let* ((sigss (verilog-read-always-signals))
@@ -13202,6 +13240,7 @@
`verilog-auto-inout-param' for AUTOINOUTPARAM copying params from
elsewhere
`verilog-auto-input' for AUTOINPUT making hierarchy inputs
`verilog-auto-insert-lisp' for AUTOINSERTLISP insert code from lisp
function
+ `verilog-auto-insert-last' for AUTOINSERTLAST insert code from lisp
function
`verilog-auto-inst' for AUTOINST instantiation pins
`verilog-auto-star' for AUTOINST .* SystemVerilog pins
`verilog-auto-inst-param' for AUTOINSTPARAM instantiation params
@@ -13278,7 +13317,6 @@
(verilog-inject-arg))
;;
;; Do user inserts first, so their code can insert AUTOs
- ;; We may provide an AUTOINSERTLISPLAST if another cleanup pass
is needed
(verilog-auto-re-search-do "/\\*AUTOINSERTLISP(.*?)\\*/"
'verilog-auto-insert-lisp)
;; Expand instances before need the signals the instances
input/output
@@ -13312,11 +13350,13 @@
(verilog-auto-re-search-do "/\\*AUTOREG\\*/" 'verilog-auto-reg)
(verilog-auto-re-search-do "/\\*AUTOREGINPUT\\*/"
'verilog-auto-reg-input)
;; outputevery needs AUTOOUTPUTs done first
- (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\*/"
'verilog-auto-output-every)
+ (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\((.*?)\\)?\\*/"
'verilog-auto-output-every)
;; After we've created all new variables
(verilog-auto-re-search-do "/\\*AUTOUNUSED\\*/"
'verilog-auto-unused)
;; Must be after all inputs outputs are generated
(verilog-auto-re-search-do "/\\*AUTOARG\\*/" 'verilog-auto-arg)
+ ;; User inserts
+ (verilog-auto-re-search-do "/\\*AUTOINSERTLAST(.*?)\\*/"
'verilog-auto-insert-last)
;; Fix line numbers (comments only)
(when verilog-auto-inst-template-numbers
(verilog-auto-templated-rel))
@@ -13485,7 +13525,7 @@
> "`ovm_object_utils_begin(" name ")" \n
> (- verilog-indent-level) " `ovm_object_utils_end" \n
> _ \n
- > "function new(name=\"" name "\");" \n
+ > "function new(string name=\"" name "\");" \n
> "super.new(name);" \n
> (- verilog-indent-level) "endfunction" \n
> _ \n
@@ -13499,7 +13539,7 @@
> "`uvm_object_utils_begin(" name ")" \n
> (- verilog-indent-level) "`uvm_object_utils_end" \n
> _ \n
- > "function new(name=\"" name "\");" \n
+ > "function new(string name=\"" name "\");" \n
> "super.new(name);" \n
> (- verilog-indent-level) "endfunction" \n
> _ \n
@@ -13513,7 +13553,7 @@
> "`uvm_component_utils_begin(" name ")" \n
> (- verilog-indent-level) "`uvm_component_utils_end" \n
> _ \n
- > "function new(name=\"\", uvm_component parent);" \n
+ > "function new(string name=\"\", uvm_component parent);" \n
> "super.new(name, parent);" \n
> (- verilog-indent-level) "endfunction" \n
> _ \n
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r118066: Sync with upstream verilog-mode revision c075a492,
Glenn Morris <=