aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReto Zimmermann2014-12-08 22:34:12 -0800
committerGlenn Morris2014-12-08 22:34:12 -0800
commitfb0fcda82081774aee9a8b25540947c029b23ffc (patch)
tree51b19ef0079e6fa4f36f02a0449d1cdc9d8cc38e
parent11cf3e90c62e197c600a32f9c226294255abd7a5 (diff)
downloademacs-fb0fcda82081774aee9a8b25540947c029b23ffc.tar.gz
emacs-fb0fcda82081774aee9a8b25540947c029b23ffc.zip
Sync with upstream vhdl mode v3.36.1
* lisp/progmodes/vhdl-mode.el (vhdl-version, vhdl-time-stamp): Update. (vhdl-compiler-alist): Anchor all error regexps. (vhdl-compile-use-local-error-regexp): Change default to nil. (vhdl-asort, vhdl-anot-head-p): Remove. (vhdl-aput, vhdl-adelete, vhdl-aget): Simplify. Remove optional argument of vhdl-aget and update all callers. (vhdl-import-project): Also set `vhdl-compiler'.
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/progmodes/vhdl-mode.el346
2 files changed, 168 insertions, 189 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9c044c3a3b6..4fa27b6abc7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
12014-12-09 Reto Zimmermann <reto@gnu.org>
2
3 Sync with upstream vhdl mode v3.36.1.
4 * progmodes/vhdl-mode.el (vhdl-version, vhdl-time-stamp): Update.
5 (vhdl-compiler-alist): Anchor all error regexps.
6 (vhdl-compile-use-local-error-regexp): Change default to nil.
7 (vhdl-asort, vhdl-anot-head-p): Remove.
8 (vhdl-aput, vhdl-adelete, vhdl-aget): Simplify.
9 Remove optional argument of vhdl-aget and update all callers.
10 (vhdl-import-project): Also set `vhdl-compiler'.
11
12014-12-09 Lars Magne Ingebrigtsen <larsi@gnus.org> 122014-12-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 13
3 * files.el (find-files): New function. 14 * files.el (find-files): New function.
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 9f54b246eff..4d6b3b23978 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -13,10 +13,10 @@
13;; filed in the Emacs bug reporting system against this file, a copy 13;; filed in the Emacs bug reporting system against this file, a copy
14;; of the bug report be sent to the maintainer's email address. 14;; of the bug report be sent to the maintainer's email address.
15 15
16(defconst vhdl-version "3.35.2" 16(defconst vhdl-version "3.36.1"
17 "VHDL Mode version number.") 17 "VHDL Mode version number.")
18 18
19(defconst vhdl-time-stamp "2014-03-28" 19(defconst vhdl-time-stamp "2014-11-27"
20 "VHDL Mode time stamp for last update.") 20 "VHDL Mode time stamp for last update.")
21 21
22;; This file is part of GNU Emacs. 22;; This file is part of GNU Emacs.
@@ -215,20 +215,20 @@ Overrides local variable `indent-tabs-mode'."
215 ;; [Error] Assignment error: variable is illegal target of signal assignment 215 ;; [Error] Assignment error: variable is illegal target of signal assignment
216 ("ADVance MS" "vacom" "-work \\1" "make" "-f \\1" 216 ("ADVance MS" "vacom" "-work \\1" "make" "-f \\1"
217 nil "valib \\1; vamap \\2 \\1" "./" "work/" "Makefile" "adms" 217 nil "valib \\1; vamap \\2 \\1" "./" "work/" "Makefile" "adms"
218 ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("Compiling file \\(.+\\)" 1) 218 ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("^Compiling file \\(.+\\)" 1)
219 ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" 219 ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif"
220 "PACK/\\1.vif" "BODY/\\1.vif" upcase)) 220 "PACK/\\1.vif" "BODY/\\1.vif" upcase))
221 ;; Aldec 221 ;; Aldec
222 ;; COMP96 ERROR COMP96_0018: "Identifier expected." "test.vhd" 66 3 222 ;; COMP96 ERROR COMP96_0018: "Identifier expected." "test.vhd" 66 3
223 ("Aldec" "vcom" "-work \\1" "make" "-f \\1" 223 ("Aldec" "vcom" "-work \\1" "make" "-f \\1"
224 nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "aldec" 224 nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "aldec"
225 (".* ERROR [^:]+: \".*\" \"\\([^ \\t\\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) ("" 0) 225 ("^.* ERROR [^:]+: \".*\" \"\\([^ \t\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) ("" 0)
226 nil) 226 nil)
227 ;; Cadence Leapfrog: cv -file test.vhd 227 ;; Cadence Leapfrog: cv -file test.vhd
228 ;; duluth: *E,430 (test.vhd,13): identifier (POSITIV) is not declared 228 ;; duluth: *E,430 (test.vhd,13): identifier (POSITIV) is not declared
229 ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1" 229 ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1"
230 nil "mkdir \\1" "./" "work/" "Makefile" "leapfrog" 230 nil "mkdir \\1" "./" "work/" "Makefile" "leapfrog"
231 ("duluth: \\*E,[0-9]+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)):" 1 2 nil) ("" 0) 231 ("^duluth: \\*E,[0-9]+ (\\([^ \t\n]+\\),\\([0-9]+\\)):" 1 2 nil) ("" 0)
232 ("\\1/entity" "\\2/\\1" "\\1/configuration" 232 ("\\1/entity" "\\2/\\1" "\\1/configuration"
233 "\\1/package" "\\1/body" downcase)) 233 "\\1/package" "\\1/body" downcase))
234 ;; Cadence Affirma NC vhdl: ncvhdl test.vhd 234 ;; Cadence Affirma NC vhdl: ncvhdl test.vhd
@@ -236,27 +236,29 @@ Overrides local variable `indent-tabs-mode'."
236 ;; (PLL_400X_TOP) is not declared [10.3]. 236 ;; (PLL_400X_TOP) is not declared [10.3].
237 ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1" 237 ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1"
238 nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl" 238 nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl"
239 ("ncvhdl_p: \\*E,\\w+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) 239 ("^ncvhdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0)
240 ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db" 240 ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db"
241 "\\1/package/pc.db" "\\1/body/pc.db" downcase)) 241 "\\1/package/pc.db" "\\1/body/pc.db" downcase))
242 ;; ghdl vhdl: ghdl test.vhd 242 ;; ghdl vhdl
243 ;; ghdl -a bad_counter.vhdl
244 ;; bad_counter.vhdl:13:14: operator "=" is overloaded
243 ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1" 245 ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1"
244 nil "mkdir \\1" "./" "work/" "Makefile" "ghdl" 246 nil "mkdir \\1" "./" "work/" "Makefile" "ghdl"
245 ("ghdl_p: \\*E,\\w+ (\\([^ \\t\\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) 247 ("^ghdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0)
246 ("\\1/entity" "\\2/\\1" "\\1/configuration" 248 ("\\1/entity" "\\2/\\1" "\\1/configuration"
247 "\\1/package" "\\1/body" downcase)) 249 "\\1/package" "\\1/body" downcase))
248 ;; IBM Compiler 250 ;; IBM Compiler
249 ;; 00 COACHDL* | [CCHDL-1]: File: adder.vhd, line.column: 120.6 251 ;; 00 COACHDL* | [CCHDL-1]: File: adder.vhd, line.column: 120.6
250 ("IBM Compiler" "g2tvc" "-src" "precomp" "\\1" 252 ("IBM Compiler" "g2tvc" "-src" "precomp" "\\1"
251 nil "mkdir \\1" "./" "work/" "Makefile" "ibm" 253 nil "mkdir \\1" "./" "work/" "Makefile" "ibm"
252 ("[0-9]+ COACHDL.*: File: \\([^ \\t\\n]+\\), line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0) 254 ("^[0-9]+ COACHDL.*: File: \\([^ \t\n]+\\), *line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0)
253 nil) 255 nil)
254 ;; Ikos Voyager: analyze test.vhd 256 ;; Ikos Voyager: analyze test.vhd
255 ;; analyze test.vhd 257 ;; analyze test.vhd
256 ;; E L4/C5: this library unit is inaccessible 258 ;; E L4/C5: this library unit is inaccessible
257 ("Ikos" "analyze" "-l \\1" "make" "-f \\1" 259 ("Ikos" "analyze" "-l \\1" "make" "-f \\1"
258 nil "mkdir \\1" "./" "work/" "Makefile" "ikos" 260 nil "mkdir \\1" "./" "work/" "Makefile" "ikos"
259 ("E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2) 261 ("^E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2)
260 ("^analyze +\\(.+ +\\)*\\(.+\\)$" 2) 262 ("^analyze +\\(.+ +\\)*\\(.+\\)$" 2)
261 nil) 263 nil)
262 ;; ModelSim, Model Technology: vcom test.vhd 264 ;; ModelSim, Model Technology: vcom test.vhd
@@ -266,14 +268,14 @@ Overrides local variable `indent-tabs-mode'."
266 ;; ** Error: adder.vhd(190): Unknown identifier: ctl_numb 268 ;; ** Error: adder.vhd(190): Unknown identifier: ctl_numb
267 ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" 269 ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1"
268 nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" 270 nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim"
269 ("\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\)? \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) 271 ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0)
270 ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" 272 ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat"
271 "\\1/_primary.dat" "\\1/body.dat" downcase)) 273 "\\1/_primary.dat" "\\1/body.dat" downcase))
272 ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd 274 ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd
273 ;; test.vhd:34: error message 275 ;; test.vhd:34: error message
274 ("LEDA ProVHDL" "provhdl" "-w \\1 -f" "make" "-f \\1" 276 ("LEDA ProVHDL" "provhdl" "-w \\1 -f" "make" "-f \\1"
275 nil "mkdir \\1" "./" "work/" "Makefile" "provhdl" 277 nil "mkdir \\1" "./" "work/" "Makefile" "provhdl"
276 ("\\([^ \\t\\n]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) 278 ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0)
277 ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" 279 ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif"
278 "PACK/\\1.vif" "BODY/BODY-\\1.vif" upcase)) 280 "PACK/\\1.vif" "BODY/BODY-\\1.vif" upcase))
279 ;; Quartus compiler 281 ;; Quartus compiler
@@ -284,21 +286,21 @@ Overrides local variable `indent-tabs-mode'."
284 ;; Warning: VHDL Process Statement warning at dvi2sdi_tst.vhd(172): ... 286 ;; Warning: VHDL Process Statement warning at dvi2sdi_tst.vhd(172): ...
285 ("Quartus" "make" "-work \\1" "make" "-f \\1" 287 ("Quartus" "make" "-work \\1" "make" "-f \\1"
286 nil "mkdir \\1" "./" "work/" "Makefile" "quartus" 288 nil "mkdir \\1" "./" "work/" "Makefile" "quartus"
287 ("\\(Error\\|Warning\\): .* \\([^ \\t\\n]+\\)(\\([0-9]+\\))" 2 3 nil) ("" 0) 289 ("^\\(Error\\|Warning\\): .* \\([^ \t\n]+\\)(\\([0-9]+\\))" 2 3 nil) ("" 0)
288 nil) 290 nil)
289 ;; QuickHDL, Mentor Graphics: qvhcom test.vhd 291 ;; QuickHDL, Mentor Graphics: qvhcom test.vhd
290 ;; ERROR: test.vhd(24): near "dnd": expecting: END 292 ;; ERROR: test.vhd(24): near "dnd": expecting: END
291 ;; WARNING[4]: test.vhd(30): A space is required between ... 293 ;; WARNING[4]: test.vhd(30): A space is required between ...
292 ("QuickHDL" "qvhcom" "-work \\1" "make" "-f \\1" 294 ("QuickHDL" "qvhcom" "-work \\1" "make" "-f \\1"
293 nil "mkdir \\1" "./" "work/" "Makefile" "quickhdl" 295 nil "mkdir \\1" "./" "work/" "Makefile" "quickhdl"
294 ("\\(ERROR\\|WARNING\\)[^:]*: \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 2 3 nil) ("" 0) 296 ("^\\(ERROR\\|WARNING\\)[^:]*: \\([^ \t\n]+\\)(\\([0-9]+\\)):" 2 3 nil) ("" 0)
295 ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" 297 ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat"
296 "\\1/_primary.dat" "\\1/body.dat" downcase)) 298 "\\1/_primary.dat" "\\1/body.dat" downcase))
297 ;; Savant: scram -publish-cc test.vhd 299 ;; Savant: scram -publish-cc test.vhd
298 ;; test.vhd:87: _set_passed_through_out_port(IIR_Boolean) not defined for 300 ;; test.vhd:87: _set_passed_through_out_port(IIR_Boolean) not defined for
299 ("Savant" "scram" "-publish-cc -design-library-name \\1" "make" "-f \\1" 301 ("Savant" "scram" "-publish-cc -design-library-name \\1" "make" "-f \\1"
300 nil "mkdir \\1" "./" "work._savant_lib/" "Makefile" "savant" 302 nil "mkdir \\1" "./" "work._savant_lib/" "Makefile" "savant"
301 ("\\([^ \\t\\n]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) 303 ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0)
302 ("\\1_entity.vhdl" "\\2_secondary_units._savant_lib/\\2_\\1.vhdl" 304 ("\\1_entity.vhdl" "\\2_secondary_units._savant_lib/\\2_\\1.vhdl"
303 "\\1_config.vhdl" "\\1_package.vhdl" 305 "\\1_config.vhdl" "\\1_package.vhdl"
304 "\\1_secondary_units._savant_lib/\\1_package_body.vhdl" downcase)) 306 "\\1_secondary_units._savant_lib/\\1_package_body.vhdl" downcase))
@@ -306,39 +308,39 @@ Overrides local variable `indent-tabs-mode'."
306 ;; Error: CSVHDL0002: test.vhd: (line 97): Invalid prefix 308 ;; Error: CSVHDL0002: test.vhd: (line 97): Invalid prefix
307 ("Simili" "vhdlp" "-work \\1" "make" "-f \\1" 309 ("Simili" "vhdlp" "-work \\1" "make" "-f \\1"
308 nil "mkdir \\1" "./" "work/" "Makefile" "simili" 310 nil "mkdir \\1" "./" "work/" "Makefile" "simili"
309 ("\\(Error\\|Warning\\): \\w+: \\([^ \\t\\n]+\\): (line \\([0-9]+\\)): " 2 3 nil) ("" 0) 311 ("^\\(Error\\|Warning\\): \\w+: \\([^ \t\n]+\\): (line \\([0-9]+\\)): " 2 3 nil) ("" 0)
310 ("\\1/prim.var" "\\2/_\\1.var" "\\1/prim.var" 312 ("\\1/prim.var" "\\2/_\\1.var" "\\1/prim.var"
311 "\\1/prim.var" "\\1/_body.var" downcase)) 313 "\\1/prim.var" "\\1/_body.var" downcase))
312 ;; Speedwave (Innoveda): analyze -libfile vsslib.ini -src test.vhd 314 ;; Speedwave (Innoveda): analyze -libfile vsslib.ini -src test.vhd
313 ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier 315 ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier
314 ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" 316 ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1"
315 nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" 317 nil "mkdir \\1" "./" "work/" "Makefile" "speedwave"
316 ("^ *ERROR\[[0-9]+\]::File \\([^ \\t\\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) 318 ("^ *ERROR\[[0-9]+\]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0)
317 nil) 319 nil)
318 ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd 320 ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd
319 ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. 321 ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context.
320 ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1" 322 ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1"
321 nil "mkdir \\1" "./" "work/" "Makefile" "synopsys" 323 nil "mkdir \\1" "./" "work/" "Makefile" "synopsys"
322 ("\\*\\*Error: vhdlan,[0-9]+ \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) 324 ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0)
323 ("\\1.sim" "\\2__\\1.sim" "\\1.sim" "\\1.sim" "\\1__.sim" upcase)) 325 ("\\1.sim" "\\2__\\1.sim" "\\1.sim" "\\1.sim" "\\1__.sim" upcase))
324 ;; Synopsys, VHDL Analyzer (syn): vhdlan -nc -spc test.vhd 326 ;; Synopsys, VHDL Analyzer (syn): vhdlan -nc -spc test.vhd
325 ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. 327 ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context.
326 ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1" 328 ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1"
327 nil "mkdir \\1" "./" "work/" "Makefile" "synopsys_dc" 329 nil "mkdir \\1" "./" "work/" "Makefile" "synopsys_dc"
328 ("\\*\\*Error: vhdlan,[0-9]+ \\([^ \\t\\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) 330 ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0)
329 ("\\1.syn" "\\2__\\1.syn" "\\1.syn" "\\1.syn" "\\1__.syn" upcase)) 331 ("\\1.syn" "\\2__\\1.syn" "\\1.syn" "\\1.syn" "\\1__.syn" upcase))
330 ;; Synplify: 332 ;; Synplify:
331 ;; @W:"test.vhd":57:8:57:9|Optimizing register bit count_x(5) to a constant 0 333 ;; @W:"test.vhd":57:8:57:9|Optimizing register bit count_x(5) to a constant 0
332 ("Synplify" "n/a" "n/a" "make" "-f \\1" 334 ("Synplify" "n/a" "n/a" "make" "-f \\1"
333 nil "mkdir \\1" "./" "work/" "Makefile" "synplify" 335 nil "mkdir \\1" "./" "work/" "Makefile" "synplify"
334 ("@[EWN]:\"\\([^ \\t\\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) ("" 0) 336 ("^@[EWN]:\"\\([^ \t\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) ("" 0)
335 nil) 337 nil)
336 ;; Vantage: analyze -libfile vsslib.ini -src test.vhd 338 ;; Vantage: analyze -libfile vsslib.ini -src test.vhd
337 ;; Compiling "test.vhd" line 1... 339 ;; Compiling "test.vhd" line 1...
338 ;; **Error: LINE 49 *** No aggregate value is valid in this context. 340 ;; **Error: LINE 49 *** No aggregate value is valid in this context.
339 ("Vantage" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" 341 ("Vantage" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1"
340 nil "mkdir \\1" "./" "work/" "Makefile" "vantage" 342 nil "mkdir \\1" "./" "work/" "Makefile" "vantage"
341 ("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) 343 ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil)
342 ("^ *Compiling \"\\(.+\\)\" " 1) 344 ("^ *Compiling \"\\(.+\\)\" " 1)
343 nil) 345 nil)
344 ;; VeriBest: vc vhdl test.vhd 346 ;; VeriBest: vc vhdl test.vhd
@@ -355,14 +357,14 @@ Overrides local variable `indent-tabs-mode'."
355 ;; **Error: LINE 49 *** No aggregate value is valid in this context. 357 ;; **Error: LINE 49 *** No aggregate value is valid in this context.
356 ("Viewlogic" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" 358 ("Viewlogic" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1"
357 nil "mkdir \\1" "./" "work/" "Makefile" "viewlogic" 359 nil "mkdir \\1" "./" "work/" "Makefile" "viewlogic"
358 ("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) 360 ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil)
359 ("^ *Compiling \"\\(.+\\)\" " 1) 361 ("^ *Compiling \"\\(.+\\)\" " 1)
360 nil) 362 nil)
361 ;; Xilinx XST: 363 ;; Xilinx XST:
362 ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error 364 ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error
363 ("Xilinx XST" "xflow" "" "make" "-f \\1" 365 ("Xilinx XST" "xflow" "" "make" "-f \\1"
364 nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" 366 nil "mkdir \\1" "./" "work/" "Makefile" "xilinx"
365 ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \\t\\n]+\\)\" Line \\([0-9]+\\)\." 1 2 nil) ("" 0) 367 ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\." 1 2 nil) ("" 0)
366 nil) 368 nil)
367 ) 369 )
368 "List of available VHDL compilers and their properties. 370 "List of available VHDL compilers and their properties.
@@ -487,7 +489,7 @@ Select a compiler name from the ones defined in option `vhdl-compiler-alist'."
487 (append '(choice) (nreverse list))) 489 (append '(choice) (nreverse list)))
488 :group 'vhdl-compile) 490 :group 'vhdl-compile)
489 491
490(defcustom vhdl-compile-use-local-error-regexp t 492(defcustom vhdl-compile-use-local-error-regexp nil
491 "Non-nil means use buffer-local `compilation-error-regexp-alist'. 493 "Non-nil means use buffer-local `compilation-error-regexp-alist'.
492In this case, only error message regexps for VHDL compilers are active if 494In this case, only error message regexps for VHDL compilers are active if
493compilation is started from a VHDL buffer. Otherwise, the error message 495compilation is started from a VHDL buffer. Otherwise, the error message
@@ -496,6 +498,7 @@ active all the time. Note that by doing that, the predefined global regexps
496might result in erroneous parsing of error messages for some VHDL compilers. 498might result in erroneous parsing of error messages for some VHDL compilers.
497 499
498NOTE: Activate the new setting by restarting Emacs." 500NOTE: Activate the new setting by restarting Emacs."
501 :version "25.1" ; t -> nil
499 :type 'boolean 502 :type 'boolean
500 :group 'vhdl-compile) 503 :group 'vhdl-compile)
501 504
@@ -2137,73 +2140,36 @@ your style, only those that are different from the default.")
2137 (require 'ps-print) 2140 (require 'ps-print)
2138 (require 'speedbar))) ; for speedbar-with-writable 2141 (require 'speedbar))) ; for speedbar-with-writable
2139 2142
2140;; functions from obsolete assoc.el package (obsoleted in GNU Emacs 24.3)
2141(defun vhdl-asort (alist-symbol key)
2142 "Move a specified key-value pair to the head of an alist.
2143The alist is referenced by ALIST-SYMBOL. Key-value pair to move to
2144head is one matching KEY. Returns the sorted list and doesn't affect
2145the order of any other key-value pair. Side effect sets alist to new
2146sorted list."
2147 (set alist-symbol
2148 (sort (copy-alist (symbol-value alist-symbol))
2149 (lambda (a _b) (equal (car a) key)))))
2150
2151(defun vhdl-anot-head-p (alist key)
2152 "Find out if a specified key-value pair is not at the head of an alist.
2153The alist to check is specified by ALIST and the key-value pair is the
2154one matching the supplied KEY. Returns nil if ALIST is nil, or if
2155key-value pair is at the head of the alist. Returns t if key-value
2156pair is not at the head of alist. ALIST is not altered."
2157 (not (equal (car (car alist)) key)))
2158
2159(defun vhdl-aput (alist-symbol key &optional value) 2143(defun vhdl-aput (alist-symbol key &optional value)
2160 "Insert a key-value pair into an alist. 2144 "Insert a key-value pair into an alist.
2161The alist is referenced by ALIST-SYMBOL. The key-value pair is made 2145The alist is referenced by ALIST-SYMBOL. The key-value pair is made
2162from KEY and optionally, VALUE. Returns the altered alist. 2146from KEY and VALUE. If the key-value pair referenced by KEY can be
2163 2147found in the alist, the value of KEY will be set to VALUE. If the
2164If the key-value pair referenced by KEY can be found in the alist, and 2148key-value pair cannot be found in the alist, it will be inserted into
2165VALUE is supplied non-nil, then the value of KEY will be set to VALUE. 2149the head of the alist."
2166If VALUE is not supplied, or is nil, the key-value pair will not be 2150 (let* ((alist (symbol-value alist-symbol))
2167modified, but will be moved to the head of the alist. If the key-value 2151 (elem (assoc key alist)))
2168pair cannot be found in the alist, it will be inserted into the head 2152 (if elem
2169of the alist (with value nil if VALUE is nil or not supplied)." 2153 (setcdr elem value)
2170 (let ((elem (list (cons key value))) 2154 (set alist-symbol (cons (cons key value) alist)))))
2171 alist)
2172 (vhdl-asort alist-symbol key)
2173 (setq alist (symbol-value alist-symbol))
2174 (cond ((null alist) (set alist-symbol elem))
2175 ((vhdl-anot-head-p alist key) (set alist-symbol (nconc elem alist)))
2176 (value (setcar alist (car elem)) alist)
2177 (t alist))))
2178 2155
2179(defun vhdl-adelete (alist-symbol key) 2156(defun vhdl-adelete (alist-symbol key)
2180 "Delete a key-value pair from the alist. 2157 "Delete a key-value pair from the alist.
2181Alist is referenced by ALIST-SYMBOL and the key-value pair to remove 2158Alist is referenced by ALIST-SYMBOL and the key-value pair to remove
2182is pair matching KEY. Returns the altered alist." 2159is pair matching KEY."
2183 (vhdl-asort alist-symbol key) 2160 (let ((alist (symbol-value alist-symbol)) alist-cdr)
2184 (let ((alist (symbol-value alist-symbol))) 2161 (while (equal key (caar alist))
2185 (cond ((null alist) nil) 2162 (setq alist (cdr alist))
2186 ((vhdl-anot-head-p alist key) alist) 2163 (set alist-symbol alist))
2187 (t (set alist-symbol (cdr alist)))))) 2164 (while (setq alist-cdr (cdr alist))
2188 2165 (if (equal key (caar alist-cdr))
2189(defun vhdl-aget (alist key &optional keynil-p) 2166 (setcdr alist (cdr alist-cdr))
2190 "Return the value in ALIST that is associated with KEY. 2167 (setq alist alist-cdr)))))
2191Optional KEYNIL-P describes what to do if the value associated with 2168
2192KEY is nil. If KEYNIL-P is not supplied or is nil, and the value is 2169(defun vhdl-aget (alist key)
2193nil, then KEY is returned. If KEYNIL-P is non-nil, then nil would be 2170 "Return the value in ALIST that is associated with KEY. If KEY is
2194returned. 2171not found, then nil is returned."
2195 2172 (cdr (assoc key alist)))
2196If no key-value pair matching KEY could be found in ALIST, or ALIST is
2197nil then nil is returned. ALIST is not altered."
2198 (let ((copy (copy-alist alist)))
2199 (cond ((null alist) nil)
2200 ((progn (vhdl-asort 'copy key)
2201 (vhdl-anot-head-p copy key)) nil)
2202 ((cdr (car copy)))
2203 (keynil-p nil)
2204 ((car (car copy)))
2205 (t nil))))
2206
2207 2173
2208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2209;;; Compatibility 2175;;; Compatibility
@@ -12981,16 +12947,18 @@ File statistics: \"%s\"\n\
12981 (condition-case () 12947 (condition-case ()
12982 (let ((current-project vhdl-project)) 12948 (let ((current-project vhdl-project))
12983 (load-file file-name) 12949 (load-file file-name)
12984 (when (/= (length (vhdl-aget vhdl-project-alist vhdl-project t)) 10) 12950 (when (/= (length (vhdl-aget vhdl-project-alist vhdl-project)) 10)
12985 (vhdl-adelete 'vhdl-project-alist vhdl-project) 12951 (vhdl-adelete 'vhdl-project-alist vhdl-project)
12986 (error "")) 12952 (error ""))
12987 (when not-make-current 12953 (if not-make-current
12988 (setq vhdl-project current-project)) 12954 (setq vhdl-project current-project)
12955 (setq vhdl-compiler
12956 (caar (nth 4 (vhdl-aget vhdl-project-alist vhdl-project)))))
12989 (vhdl-update-mode-menu) 12957 (vhdl-update-mode-menu)
12990 (vhdl-speedbar-refresh) 12958 (vhdl-speedbar-refresh)
12991 (unless not-make-current 12959 (unless not-make-current
12992 (message "Current VHDL project: \"%s\"%s" 12960 (message "Current VHDL project: \"%s\"; compiler: \"%s\"%s"
12993 vhdl-project (if auto " (auto-loaded)" "")))) 12961 vhdl-project vhdl-compiler (if auto " (auto-loaded)" ""))))
12994 (error (vhdl-warning 12962 (error (vhdl-warning
12995 (format "ERROR: Invalid project setup file: \"%s\"" file-name)))))) 12963 (format "ERROR: Invalid project setup file: \"%s\"" file-name))))))
12996 12964
@@ -12998,7 +12966,7 @@ File statistics: \"%s\"\n\
12998 "Duplicate setup of current project." 12966 "Duplicate setup of current project."
12999 (interactive) 12967 (interactive)
13000 (let ((new-name (read-from-minibuffer "New project name: ")) 12968 (let ((new-name (read-from-minibuffer "New project name: "))
13001 (project-entry (vhdl-aget vhdl-project-alist vhdl-project t))) 12969 (project-entry (vhdl-aget vhdl-project-alist vhdl-project)))
13002 (setq vhdl-project-alist 12970 (setq vhdl-project-alist
13003 (append vhdl-project-alist 12971 (append vhdl-project-alist
13004 (list (cons new-name project-entry)))) 12972 (list (cons new-name project-entry))))
@@ -13746,11 +13714,11 @@ hierarchy otherwise.")
13746 ent-alist conf-alist pack-alist ent-inst-list file-alist 13714 ent-alist conf-alist pack-alist ent-inst-list file-alist
13747 tmp-list tmp-entry no-files files-exist big-files) 13715 tmp-list tmp-entry no-files files-exist big-files)
13748 (when (or project update) 13716 (when (or project update)
13749 (setq ent-alist (vhdl-aget vhdl-entity-alist key t) 13717 (setq ent-alist (vhdl-aget vhdl-entity-alist key)
13750 conf-alist (vhdl-aget vhdl-config-alist key t) 13718 conf-alist (vhdl-aget vhdl-config-alist key)
13751 pack-alist (vhdl-aget vhdl-package-alist key t) 13719 pack-alist (vhdl-aget vhdl-package-alist key)
13752 ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist key t)) 13720 ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist key))
13753 file-alist (vhdl-aget vhdl-file-alist key t))) 13721 file-alist (vhdl-aget vhdl-file-alist key)))
13754 (when (and (not is-directory) (null file-list)) 13722 (when (and (not is-directory) (null file-list))
13755 (message "No such file: \"%s\"" name)) 13723 (message "No such file: \"%s\"" name))
13756 (setq files-exist file-list) 13724 (setq files-exist file-list)
@@ -13792,7 +13760,7 @@ hierarchy otherwise.")
13792 (while (re-search-forward "^[ \t]*entity[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t) 13760 (while (re-search-forward "^[ \t]*entity[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t)
13793 (let* ((ent-name (match-string-no-properties 1)) 13761 (let* ((ent-name (match-string-no-properties 1))
13794 (ent-key (downcase ent-name)) 13762 (ent-key (downcase ent-name))
13795 (ent-entry (vhdl-aget ent-alist ent-key t)) 13763 (ent-entry (vhdl-aget ent-alist ent-key))
13796 (lib-alist (vhdl-scan-context-clause))) 13764 (lib-alist (vhdl-scan-context-clause)))
13797 (if (nth 1 ent-entry) 13765 (if (nth 1 ent-entry)
13798 (vhdl-warning-when-idle 13766 (vhdl-warning-when-idle
@@ -13811,9 +13779,9 @@ hierarchy otherwise.")
13811 (arch-key (downcase arch-name)) 13779 (arch-key (downcase arch-name))
13812 (ent-name (match-string-no-properties 2)) 13780 (ent-name (match-string-no-properties 2))
13813 (ent-key (downcase ent-name)) 13781 (ent-key (downcase ent-name))
13814 (ent-entry (vhdl-aget ent-alist ent-key t)) 13782 (ent-entry (vhdl-aget ent-alist ent-key))
13815 (arch-alist (nth 3 ent-entry)) 13783 (arch-alist (nth 3 ent-entry))
13816 (arch-entry (vhdl-aget arch-alist arch-key t)) 13784 (arch-entry (vhdl-aget arch-alist arch-key))
13817 (lib-arch-alist (vhdl-scan-context-clause))) 13785 (lib-arch-alist (vhdl-scan-context-clause)))
13818 (if arch-entry 13786 (if arch-entry
13819 (vhdl-warning-when-idle 13787 (vhdl-warning-when-idle
@@ -13835,7 +13803,7 @@ hierarchy otherwise.")
13835 (while (re-search-forward "^[ \t]*configuration[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+of[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t) 13803 (while (re-search-forward "^[ \t]*configuration[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+of[ \t\n\r\f]+\\(\\w+\\)[ \t\n\r\f]+is\\>" nil t)
13836 (let* ((conf-name (match-string-no-properties 1)) 13804 (let* ((conf-name (match-string-no-properties 1))
13837 (conf-key (downcase conf-name)) 13805 (conf-key (downcase conf-name))
13838 (conf-entry (vhdl-aget conf-alist conf-key t)) 13806 (conf-entry (vhdl-aget conf-alist conf-key))
13839 (ent-name (match-string-no-properties 2)) 13807 (ent-name (match-string-no-properties 2))
13840 (ent-key (downcase ent-name)) 13808 (ent-key (downcase ent-name))
13841 (lib-alist (vhdl-scan-context-clause)) 13809 (lib-alist (vhdl-scan-context-clause))
@@ -13885,7 +13853,7 @@ hierarchy otherwise.")
13885 (let* ((pack-name (match-string-no-properties 2)) 13853 (let* ((pack-name (match-string-no-properties 2))
13886 (pack-key (downcase pack-name)) 13854 (pack-key (downcase pack-name))
13887 (is-body (match-string-no-properties 1)) 13855 (is-body (match-string-no-properties 1))
13888 (pack-entry (vhdl-aget pack-alist pack-key t)) 13856 (pack-entry (vhdl-aget pack-alist pack-key))
13889 (pack-line (vhdl-current-line)) 13857 (pack-line (vhdl-current-line))
13890 (end-of-unit (vhdl-get-end-of-unit)) 13858 (end-of-unit (vhdl-get-end-of-unit))
13891 comp-name func-name comp-alist func-alist lib-alist) 13859 comp-name func-name comp-alist func-alist lib-alist)
@@ -13940,9 +13908,9 @@ hierarchy otherwise.")
13940 (ent-key (downcase ent-name)) 13908 (ent-key (downcase ent-name))
13941 (arch-name (match-string-no-properties 1)) 13909 (arch-name (match-string-no-properties 1))
13942 (arch-key (downcase arch-name)) 13910 (arch-key (downcase arch-name))
13943 (ent-entry (vhdl-aget ent-alist ent-key t)) 13911 (ent-entry (vhdl-aget ent-alist ent-key))
13944 (arch-alist (nth 3 ent-entry)) 13912 (arch-alist (nth 3 ent-entry))
13945 (arch-entry (vhdl-aget arch-alist arch-key t)) 13913 (arch-entry (vhdl-aget arch-alist arch-key))
13946 (beg-of-unit (point)) 13914 (beg-of-unit (point))
13947 (end-of-unit (vhdl-get-end-of-unit)) 13915 (end-of-unit (vhdl-get-end-of-unit))
13948 (inst-no 0) 13916 (inst-no 0)
@@ -14077,8 +14045,8 @@ hierarchy otherwise.")
14077 ;; check whether configuration has a corresponding entity/architecture 14045 ;; check whether configuration has a corresponding entity/architecture
14078 (setq tmp-list conf-alist) 14046 (setq tmp-list conf-alist)
14079 (while tmp-list 14047 (while tmp-list
14080 (if (setq tmp-entry (vhdl-aget ent-alist (nth 4 (car tmp-list)) t)) 14048 (if (setq tmp-entry (vhdl-aget ent-alist (nth 4 (car tmp-list))))
14081 (unless (vhdl-aget (nth 3 tmp-entry) (nth 5 (car tmp-list)) t) 14049 (unless (vhdl-aget (nth 3 tmp-entry) (nth 5 (car tmp-list)))
14082 (setq tmp-entry (car tmp-list)) 14050 (setq tmp-entry (car tmp-list))
14083 (vhdl-warning-when-idle 14051 (vhdl-warning-when-idle
14084 "Configuration of non-existing architecture: \"%s\" of \"%s(%s)\"\n in \"%s\" (line %d)" 14052 "Configuration of non-existing architecture: \"%s\" of \"%s(%s)\"\n in \"%s\" (line %d)"
@@ -14205,15 +14173,15 @@ of PROJECT."
14205 (let* ((vhdl-project (nth 0 (car directory-alist))) 14173 (let* ((vhdl-project (nth 0 (car directory-alist)))
14206 (project (vhdl-project-p)) 14174 (project (vhdl-project-p))
14207 (ent-alist (vhdl-aget vhdl-entity-alist 14175 (ent-alist (vhdl-aget vhdl-entity-alist
14208 (or project dir-name) t)) 14176 (or project dir-name)))
14209 (conf-alist (vhdl-aget vhdl-config-alist 14177 (conf-alist (vhdl-aget vhdl-config-alist
14210 (or project dir-name) t)) 14178 (or project dir-name)))
14211 (pack-alist (vhdl-aget vhdl-package-alist 14179 (pack-alist (vhdl-aget vhdl-package-alist
14212 (or project dir-name) t)) 14180 (or project dir-name)))
14213 (ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist 14181 (ent-inst-list (car (vhdl-aget vhdl-ent-inst-alist
14214 (or project dir-name) t))) 14182 (or project dir-name))))
14215 (file-alist (vhdl-aget vhdl-file-alist (or project dir-name) t)) 14183 (file-alist (vhdl-aget vhdl-file-alist (or project dir-name)))
14216 (file-entry (vhdl-aget file-alist file-name t)) 14184 (file-entry (vhdl-aget file-alist file-name))
14217 (ent-list (nth 0 file-entry)) 14185 (ent-list (nth 0 file-entry))
14218 (arch-list (nth 1 file-entry)) 14186 (arch-list (nth 1 file-entry))
14219 (arch-ent-list (nth 2 file-entry)) 14187 (arch-ent-list (nth 2 file-entry))
@@ -14227,7 +14195,7 @@ of PROJECT."
14227 ;; entities 14195 ;; entities
14228 (while ent-list 14196 (while ent-list
14229 (setq key (car ent-list) 14197 (setq key (car ent-list)
14230 entry (vhdl-aget ent-alist key t)) 14198 entry (vhdl-aget ent-alist key))
14231 (when (equal file-name (nth 1 entry)) 14199 (when (equal file-name (nth 1 entry))
14232 (if (nth 3 entry) 14200 (if (nth 3 entry)
14233 (vhdl-aput 'ent-alist key 14201 (vhdl-aput 'ent-alist key
@@ -14238,9 +14206,9 @@ of PROJECT."
14238 (while arch-list 14206 (while arch-list
14239 (setq key (car arch-list) 14207 (setq key (car arch-list)
14240 ent-key (car arch-ent-list) 14208 ent-key (car arch-ent-list)
14241 entry (vhdl-aget ent-alist ent-key t) 14209 entry (vhdl-aget ent-alist ent-key)
14242 arch-alist (nth 3 entry)) 14210 arch-alist (nth 3 entry))
14243 (when (equal file-name (nth 1 (vhdl-aget arch-alist key t))) 14211 (when (equal file-name (nth 1 (vhdl-aget arch-alist key)))
14244 (vhdl-adelete 'arch-alist key) 14212 (vhdl-adelete 'arch-alist key)
14245 (if (or (nth 1 entry) arch-alist) 14213 (if (or (nth 1 entry) arch-alist)
14246 (vhdl-aput 'ent-alist ent-key 14214 (vhdl-aput 'ent-alist ent-key
@@ -14252,13 +14220,13 @@ of PROJECT."
14252 ;; configurations 14220 ;; configurations
14253 (while conf-list 14221 (while conf-list
14254 (setq key (car conf-list)) 14222 (setq key (car conf-list))
14255 (when (equal file-name (nth 1 (vhdl-aget conf-alist key t))) 14223 (when (equal file-name (nth 1 (vhdl-aget conf-alist key)))
14256 (vhdl-adelete 'conf-alist key)) 14224 (vhdl-adelete 'conf-alist key))
14257 (setq conf-list (cdr conf-list))) 14225 (setq conf-list (cdr conf-list)))
14258 ;; package declarations 14226 ;; package declarations
14259 (while pack-list 14227 (while pack-list
14260 (setq key (car pack-list) 14228 (setq key (car pack-list)
14261 entry (vhdl-aget pack-alist key t)) 14229 entry (vhdl-aget pack-alist key))
14262 (when (equal file-name (nth 1 entry)) 14230 (when (equal file-name (nth 1 entry))
14263 (if (nth 6 entry) 14231 (if (nth 6 entry)
14264 (vhdl-aput 'pack-alist key 14232 (vhdl-aput 'pack-alist key
@@ -14270,7 +14238,7 @@ of PROJECT."
14270 ;; package bodies 14238 ;; package bodies
14271 (while pack-body-list 14239 (while pack-body-list
14272 (setq key (car pack-body-list) 14240 (setq key (car pack-body-list)
14273 entry (vhdl-aget pack-alist key t)) 14241 entry (vhdl-aget pack-alist key))
14274 (when (equal file-name (nth 6 entry)) 14242 (when (equal file-name (nth 6 entry))
14275 (if (nth 1 entry) 14243 (if (nth 1 entry)
14276 (vhdl-aput 'pack-alist key 14244 (vhdl-aput 'pack-alist key
@@ -14321,8 +14289,8 @@ of PROJECT."
14321 &optional include-top ent-hier) 14289 &optional include-top ent-hier)
14322 "Get instantiation hierarchy beginning in architecture ARCH-KEY of 14290 "Get instantiation hierarchy beginning in architecture ARCH-KEY of
14323entity ENT-KEY." 14291entity ENT-KEY."
14324 (let* ((ent-entry (vhdl-aget ent-alist ent-key t)) 14292 (let* ((ent-entry (vhdl-aget ent-alist ent-key))
14325 (arch-entry (if arch-key (vhdl-aget (nth 3 ent-entry) arch-key t) 14293 (arch-entry (if arch-key (vhdl-aget (nth 3 ent-entry) arch-key)
14326 (cdar (last (nth 3 ent-entry))))) 14294 (cdar (last (nth 3 ent-entry)))))
14327 (inst-alist (nth 3 arch-entry)) 14295 (inst-alist (nth 3 arch-entry))
14328 inst-entry inst-ent-entry inst-arch-entry inst-conf-entry comp-entry 14296 inst-entry inst-ent-entry inst-arch-entry inst-conf-entry comp-entry
@@ -14348,17 +14316,17 @@ entity ENT-KEY."
14348 (downcase (or inst-comp-name "")))))) 14316 (downcase (or inst-comp-name ""))))))
14349 (setq tmp-list (cdr tmp-list))) 14317 (setq tmp-list (cdr tmp-list)))
14350 (setq inst-conf-key (or (nth 4 (car tmp-list)) inst-conf-key)) 14318 (setq inst-conf-key (or (nth 4 (car tmp-list)) inst-conf-key))
14351 (setq inst-conf-entry (vhdl-aget conf-alist inst-conf-key t)) 14319 (setq inst-conf-entry (vhdl-aget conf-alist inst-conf-key))
14352 (when (and inst-conf-key (not inst-conf-entry)) 14320 (when (and inst-conf-key (not inst-conf-entry))
14353 (vhdl-warning-when-idle "Configuration not found: \"%s\"" inst-conf-key)) 14321 (vhdl-warning-when-idle "Configuration not found: \"%s\"" inst-conf-key))
14354 ;; determine entity 14322 ;; determine entity
14355 (setq inst-ent-key 14323 (setq inst-ent-key
14356 (or (nth 2 (car tmp-list)) ; from configuration 14324 (or (nth 2 (car tmp-list)) ; from configuration
14357 (nth 3 inst-conf-entry) ; from subconfiguration 14325 (nth 3 inst-conf-entry) ; from subconfiguration
14358 (nth 3 (vhdl-aget conf-alist (nth 7 inst-entry) t)) 14326 (nth 3 (vhdl-aget conf-alist (nth 7 inst-entry)))
14359 ; from configuration spec. 14327 ; from configuration spec.
14360 (nth 5 inst-entry))) ; from direct instantiation 14328 (nth 5 inst-entry))) ; from direct instantiation
14361 (setq inst-ent-entry (vhdl-aget ent-alist inst-ent-key t)) 14329 (setq inst-ent-entry (vhdl-aget ent-alist inst-ent-key))
14362 ;; determine architecture 14330 ;; determine architecture
14363 (setq inst-arch-key 14331 (setq inst-arch-key
14364 (or (nth 3 (car tmp-list)) ; from configuration 14332 (or (nth 3 (car tmp-list)) ; from configuration
@@ -14368,7 +14336,7 @@ entity ENT-KEY."
14368 ; from configuration spec. 14336 ; from configuration spec.
14369 (nth 4 inst-ent-entry) ; MRA 14337 (nth 4 inst-ent-entry) ; MRA
14370 (caar (nth 3 inst-ent-entry)))) ; first alphabetically 14338 (caar (nth 3 inst-ent-entry)))) ; first alphabetically
14371 (setq inst-arch-entry (vhdl-aget (nth 3 inst-ent-entry) inst-arch-key t)) 14339 (setq inst-arch-entry (vhdl-aget (nth 3 inst-ent-entry) inst-arch-key))
14372 ;; set library 14340 ;; set library
14373 (setq inst-lib-key 14341 (setq inst-lib-key
14374 (or (nth 5 (car tmp-list)) ; from configuration 14342 (or (nth 5 (car tmp-list)) ; from configuration
@@ -14408,7 +14376,7 @@ entity ENT-KEY."
14408(defun vhdl-get-instantiations (ent-key indent) 14376(defun vhdl-get-instantiations (ent-key indent)
14409 "Get all instantiations of entity ENT-KEY." 14377 "Get all instantiations of entity ENT-KEY."
14410 (let ((ent-alist (vhdl-aget vhdl-entity-alist 14378 (let ((ent-alist (vhdl-aget vhdl-entity-alist
14411 (vhdl-speedbar-line-key indent) t)) 14379 (vhdl-speedbar-line-key indent)))
14412 arch-alist inst-alist ent-inst-list 14380 arch-alist inst-alist ent-inst-list
14413 ent-entry arch-entry inst-entry) 14381 ent-entry arch-entry inst-entry)
14414 (while ent-alist 14382 (while ent-alist
@@ -14495,28 +14463,28 @@ entity ENT-KEY."
14495 (when (member 'hierarchy vhdl-speedbar-save-cache) 14463 (when (member 'hierarchy vhdl-speedbar-save-cache)
14496 (insert "\n;; entity and architecture cache\n" 14464 (insert "\n;; entity and architecture cache\n"
14497 "(vhdl-aput 'vhdl-entity-alist " key " '") 14465 "(vhdl-aput 'vhdl-entity-alist " key " '")
14498 (print (vhdl-aget vhdl-entity-alist cache-key t) (current-buffer)) 14466 (print (vhdl-aget vhdl-entity-alist cache-key) (current-buffer))
14499 (insert ")\n\n;; configuration cache\n" 14467 (insert ")\n\n;; configuration cache\n"
14500 "(vhdl-aput 'vhdl-config-alist " key " '") 14468 "(vhdl-aput 'vhdl-config-alist " key " '")
14501 (print (vhdl-aget vhdl-config-alist cache-key t) (current-buffer)) 14469 (print (vhdl-aget vhdl-config-alist cache-key) (current-buffer))
14502 (insert ")\n\n;; package cache\n" 14470 (insert ")\n\n;; package cache\n"
14503 "(vhdl-aput 'vhdl-package-alist " key " '") 14471 "(vhdl-aput 'vhdl-package-alist " key " '")
14504 (print (vhdl-aget vhdl-package-alist cache-key t) (current-buffer)) 14472 (print (vhdl-aget vhdl-package-alist cache-key) (current-buffer))
14505 (insert ")\n\n;; instantiated entities cache\n" 14473 (insert ")\n\n;; instantiated entities cache\n"
14506 "(vhdl-aput 'vhdl-ent-inst-alist " key " '") 14474 "(vhdl-aput 'vhdl-ent-inst-alist " key " '")
14507 (print (vhdl-aget vhdl-ent-inst-alist cache-key t) (current-buffer)) 14475 (print (vhdl-aget vhdl-ent-inst-alist cache-key) (current-buffer))
14508 (insert ")\n\n;; design units per file cache\n" 14476 (insert ")\n\n;; design units per file cache\n"
14509 "(vhdl-aput 'vhdl-file-alist " key " '") 14477 "(vhdl-aput 'vhdl-file-alist " key " '")
14510 (print (vhdl-aget vhdl-file-alist cache-key t) (current-buffer)) 14478 (print (vhdl-aget vhdl-file-alist cache-key) (current-buffer))
14511 (when project 14479 (when project
14512 (insert ")\n\n;; source directories in project cache\n" 14480 (insert ")\n\n;; source directories in project cache\n"
14513 "(vhdl-aput 'vhdl-directory-alist " key " '") 14481 "(vhdl-aput 'vhdl-directory-alist " key " '")
14514 (print (vhdl-aget vhdl-directory-alist cache-key t) (current-buffer))) 14482 (print (vhdl-aget vhdl-directory-alist cache-key) (current-buffer)))
14515 (insert ")\n")) 14483 (insert ")\n"))
14516 (when (member 'display vhdl-speedbar-save-cache) 14484 (when (member 'display vhdl-speedbar-save-cache)
14517 (insert "\n;; shown design units cache\n" 14485 (insert "\n;; shown design units cache\n"
14518 "(vhdl-aput 'vhdl-speedbar-shown-unit-alist " key " '") 14486 "(vhdl-aput 'vhdl-speedbar-shown-unit-alist " key " '")
14519 (print (vhdl-aget vhdl-speedbar-shown-unit-alist cache-key t) 14487 (print (vhdl-aget vhdl-speedbar-shown-unit-alist cache-key)
14520 (current-buffer)) 14488 (current-buffer))
14521 (insert ")\n")) 14489 (insert ")\n"))
14522 (setq vhdl-updated-project-list 14490 (setq vhdl-updated-project-list
@@ -14784,10 +14752,10 @@ otherwise use cached data."
14784 (vhdl-scan-project-contents project)) 14752 (vhdl-scan-project-contents project))
14785 ;; insert design hierarchy 14753 ;; insert design hierarchy
14786 (vhdl-speedbar-insert-hierarchy 14754 (vhdl-speedbar-insert-hierarchy
14787 (vhdl-aget vhdl-entity-alist project t) 14755 (vhdl-aget vhdl-entity-alist project)
14788 (vhdl-aget vhdl-config-alist project t) 14756 (vhdl-aget vhdl-config-alist project)
14789 (vhdl-aget vhdl-package-alist project t) 14757 (vhdl-aget vhdl-package-alist project)
14790 (car (vhdl-aget vhdl-ent-inst-alist project t)) indent) 14758 (car (vhdl-aget vhdl-ent-inst-alist project)) indent)
14791 (insert (int-to-string indent) ":\n") 14759 (insert (int-to-string indent) ":\n")
14792 (put-text-property (- (point) 3) (1- (point)) 'invisible t) 14760 (put-text-property (- (point) 3) (1- (point)) 'invisible t)
14793 (put-text-property (1- (point)) (point) 'invisible nil) 14761 (put-text-property (1- (point)) (point) 'invisible nil)
@@ -14802,10 +14770,10 @@ otherwise use cached data."
14802 (vhdl-scan-directory-contents directory)) 14770 (vhdl-scan-directory-contents directory))
14803 ;; insert design hierarchy 14771 ;; insert design hierarchy
14804 (vhdl-speedbar-insert-hierarchy 14772 (vhdl-speedbar-insert-hierarchy
14805 (vhdl-aget vhdl-entity-alist directory t) 14773 (vhdl-aget vhdl-entity-alist directory)
14806 (vhdl-aget vhdl-config-alist directory t) 14774 (vhdl-aget vhdl-config-alist directory)
14807 (vhdl-aget vhdl-package-alist directory t) 14775 (vhdl-aget vhdl-package-alist directory)
14808 (car (vhdl-aget vhdl-ent-inst-alist directory t)) depth) 14776 (car (vhdl-aget vhdl-ent-inst-alist directory)) depth)
14809 ;; expand design units 14777 ;; expand design units
14810 (vhdl-speedbar-expand-units directory) 14778 (vhdl-speedbar-expand-units directory)
14811 (vhdl-aput 'vhdl-directory-alist directory (list (list directory)))) 14779 (vhdl-aput 'vhdl-directory-alist directory (list (list directory))))
@@ -14896,7 +14864,7 @@ otherwise use cached data."
14896(defun vhdl-speedbar-expand-units (key) 14864(defun vhdl-speedbar-expand-units (key)
14897 "Expand design units in directory/project KEY according to 14865 "Expand design units in directory/project KEY according to
14898`vhdl-speedbar-shown-unit-alist'." 14866`vhdl-speedbar-shown-unit-alist'."
14899 (let ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) 14867 (let ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))
14900 (vhdl-speedbar-update-current-unit nil) 14868 (vhdl-speedbar-update-current-unit nil)
14901 vhdl-updated-project-list) 14869 vhdl-updated-project-list)
14902 (vhdl-adelete 'vhdl-speedbar-shown-unit-alist key) 14870 (vhdl-adelete 'vhdl-speedbar-shown-unit-alist key)
@@ -14958,9 +14926,9 @@ otherwise use cached data."
14958 "Expand all design units in current directory/project." 14926 "Expand all design units in current directory/project."
14959 (interactive) 14927 (interactive)
14960 (let* ((key (vhdl-speedbar-line-key)) 14928 (let* ((key (vhdl-speedbar-line-key))
14961 (ent-alist (vhdl-aget vhdl-entity-alist key t)) 14929 (ent-alist (vhdl-aget vhdl-entity-alist key))
14962 (conf-alist (vhdl-aget vhdl-config-alist key t)) 14930 (conf-alist (vhdl-aget vhdl-config-alist key))
14963 (pack-alist (vhdl-aget vhdl-package-alist key t)) 14931 (pack-alist (vhdl-aget vhdl-package-alist key))
14964 arch-alist unit-alist subunit-alist) 14932 arch-alist unit-alist subunit-alist)
14965 (add-to-list 'vhdl-speedbar-shown-project-list key) 14933 (add-to-list 'vhdl-speedbar-shown-project-list key)
14966 (while ent-alist 14934 (while ent-alist
@@ -15012,8 +14980,8 @@ otherwise use cached data."
15012 (cond 14980 (cond
15013 ((string-match "+" text) ; expand entity 14981 ((string-match "+" text) ; expand entity
15014 (let* ((key (vhdl-speedbar-line-key indent)) 14982 (let* ((key (vhdl-speedbar-line-key indent))
15015 (ent-alist (vhdl-aget vhdl-entity-alist key t)) 14983 (ent-alist (vhdl-aget vhdl-entity-alist key))
15016 (ent-entry (vhdl-aget ent-alist token t)) 14984 (ent-entry (vhdl-aget ent-alist token))
15017 (arch-alist (nth 3 ent-entry)) 14985 (arch-alist (nth 3 ent-entry))
15018 (inst-alist (vhdl-get-instantiations token indent)) 14986 (inst-alist (vhdl-get-instantiations token indent))
15019 (subpack-alist (nth 5 ent-entry)) 14987 (subpack-alist (nth 5 ent-entry))
@@ -15023,7 +14991,7 @@ otherwise use cached data."
15023 (speedbar-change-expand-button-char ??) 14991 (speedbar-change-expand-button-char ??)
15024 (speedbar-change-expand-button-char ?-) 14992 (speedbar-change-expand-button-char ?-)
15025 ;; add entity to `vhdl-speedbar-shown-unit-alist' 14993 ;; add entity to `vhdl-speedbar-shown-unit-alist'
15026 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 14994 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15027 (vhdl-aput 'unit-alist token nil) 14995 (vhdl-aput 'unit-alist token nil)
15028 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) 14996 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist))
15029 (speedbar-with-writable 14997 (speedbar-with-writable
@@ -15064,7 +15032,7 @@ otherwise use cached data."
15064 (speedbar-change-expand-button-char ?+) 15032 (speedbar-change-expand-button-char ?+)
15065 ;; remove entity from `vhdl-speedbar-shown-unit-alist' 15033 ;; remove entity from `vhdl-speedbar-shown-unit-alist'
15066 (let* ((key (vhdl-speedbar-line-key indent)) 15034 (let* ((key (vhdl-speedbar-line-key indent))
15067 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 15035 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15068 (vhdl-adelete 'unit-alist token) 15036 (vhdl-adelete 'unit-alist token)
15069 (if unit-alist 15037 (if unit-alist
15070 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) 15038 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)
@@ -15081,21 +15049,21 @@ otherwise use cached data."
15081 (cond 15049 (cond
15082 ((string-match "+" text) ; expand architecture 15050 ((string-match "+" text) ; expand architecture
15083 (let* ((key (vhdl-speedbar-line-key (1- indent))) 15051 (let* ((key (vhdl-speedbar-line-key (1- indent)))
15084 (ent-alist (vhdl-aget vhdl-entity-alist key t)) 15052 (ent-alist (vhdl-aget vhdl-entity-alist key))
15085 (conf-alist (vhdl-aget vhdl-config-alist key t)) 15053 (conf-alist (vhdl-aget vhdl-config-alist key))
15086 (hier-alist (vhdl-get-hierarchy 15054 (hier-alist (vhdl-get-hierarchy
15087 ent-alist conf-alist (car token) (cdr token) nil nil 15055 ent-alist conf-alist (car token) (cdr token) nil nil
15088 0 (1- indent))) 15056 0 (1- indent)))
15089 (ent-entry (vhdl-aget ent-alist (car token) t)) 15057 (ent-entry (vhdl-aget ent-alist (car token)))
15090 (arch-entry (vhdl-aget (nth 3 ent-entry) (cdr token) t)) 15058 (arch-entry (vhdl-aget (nth 3 ent-entry) (cdr token)))
15091 (subpack-alist (nth 4 arch-entry)) 15059 (subpack-alist (nth 4 arch-entry))
15092 entry) 15060 entry)
15093 (if (not (or hier-alist subpack-alist)) 15061 (if (not (or hier-alist subpack-alist))
15094 (speedbar-change-expand-button-char ??) 15062 (speedbar-change-expand-button-char ??)
15095 (speedbar-change-expand-button-char ?-) 15063 (speedbar-change-expand-button-char ?-)
15096 ;; add architecture to `vhdl-speedbar-shown-unit-alist' 15064 ;; add architecture to `vhdl-speedbar-shown-unit-alist'
15097 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) 15065 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))
15098 (arch-alist (nth 0 (vhdl-aget unit-alist (car token) t)))) 15066 (arch-alist (nth 0 (vhdl-aget unit-alist (car token)))))
15099 (vhdl-aput 'unit-alist (car token) 15067 (vhdl-aput 'unit-alist (car token)
15100 (list (cons (cdr token) arch-alist))) 15068 (list (cons (cdr token) arch-alist)))
15101 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) 15069 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist))
@@ -15125,8 +15093,8 @@ otherwise use cached data."
15125 (speedbar-change-expand-button-char ?+) 15093 (speedbar-change-expand-button-char ?+)
15126 ;; remove architecture from `vhdl-speedbar-shown-unit-alist' 15094 ;; remove architecture from `vhdl-speedbar-shown-unit-alist'
15127 (let* ((key (vhdl-speedbar-line-key (1- indent))) 15095 (let* ((key (vhdl-speedbar-line-key (1- indent)))
15128 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t)) 15096 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key))
15129 (arch-alist (nth 0 (vhdl-aget unit-alist (car token) t)))) 15097 (arch-alist (nth 0 (vhdl-aget unit-alist (car token)))))
15130 (vhdl-aput 'unit-alist (car token) (list (delete (cdr token) arch-alist))) 15098 (vhdl-aput 'unit-alist (car token) (list (delete (cdr token) arch-alist)))
15131 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) 15099 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)
15132 (speedbar-delete-subblock indent) 15100 (speedbar-delete-subblock indent)
@@ -15141,9 +15109,9 @@ otherwise use cached data."
15141 (cond 15109 (cond
15142 ((string-match "+" text) ; expand configuration 15110 ((string-match "+" text) ; expand configuration
15143 (let* ((key (vhdl-speedbar-line-key indent)) 15111 (let* ((key (vhdl-speedbar-line-key indent))
15144 (conf-alist (vhdl-aget vhdl-config-alist key t)) 15112 (conf-alist (vhdl-aget vhdl-config-alist key))
15145 (conf-entry (vhdl-aget conf-alist token)) 15113 (conf-entry (vhdl-aget conf-alist token))
15146 (ent-alist (vhdl-aget vhdl-entity-alist key t)) 15114 (ent-alist (vhdl-aget vhdl-entity-alist key))
15147 (hier-alist (vhdl-get-hierarchy 15115 (hier-alist (vhdl-get-hierarchy
15148 ent-alist conf-alist (nth 3 conf-entry) 15116 ent-alist conf-alist (nth 3 conf-entry)
15149 (nth 4 conf-entry) token (nth 5 conf-entry) 15117 (nth 4 conf-entry) token (nth 5 conf-entry)
@@ -15154,7 +15122,7 @@ otherwise use cached data."
15154 (speedbar-change-expand-button-char ??) 15122 (speedbar-change-expand-button-char ??)
15155 (speedbar-change-expand-button-char ?-) 15123 (speedbar-change-expand-button-char ?-)
15156 ;; add configuration to `vhdl-speedbar-shown-unit-alist' 15124 ;; add configuration to `vhdl-speedbar-shown-unit-alist'
15157 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 15125 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15158 (vhdl-aput 'unit-alist token nil) 15126 (vhdl-aput 'unit-alist token nil)
15159 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) 15127 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist))
15160 (speedbar-with-writable 15128 (speedbar-with-writable
@@ -15182,7 +15150,7 @@ otherwise use cached data."
15182 (speedbar-change-expand-button-char ?+) 15150 (speedbar-change-expand-button-char ?+)
15183 ;; remove configuration from `vhdl-speedbar-shown-unit-alist' 15151 ;; remove configuration from `vhdl-speedbar-shown-unit-alist'
15184 (let* ((key (vhdl-speedbar-line-key indent)) 15152 (let* ((key (vhdl-speedbar-line-key indent))
15185 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 15153 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15186 (vhdl-adelete 'unit-alist token) 15154 (vhdl-adelete 'unit-alist token)
15187 (if unit-alist 15155 (if unit-alist
15188 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) 15156 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)
@@ -15199,8 +15167,8 @@ otherwise use cached data."
15199 (cond 15167 (cond
15200 ((string-match "+" text) ; expand package 15168 ((string-match "+" text) ; expand package
15201 (let* ((key (vhdl-speedbar-line-key indent)) 15169 (let* ((key (vhdl-speedbar-line-key indent))
15202 (pack-alist (vhdl-aget vhdl-package-alist key t)) 15170 (pack-alist (vhdl-aget vhdl-package-alist key))
15203 (pack-entry (vhdl-aget pack-alist token t)) 15171 (pack-entry (vhdl-aget pack-alist token))
15204 (comp-alist (nth 3 pack-entry)) 15172 (comp-alist (nth 3 pack-entry))
15205 (func-alist (nth 4 pack-entry)) 15173 (func-alist (nth 4 pack-entry))
15206 (func-body-alist (nth 8 pack-entry)) 15174 (func-body-alist (nth 8 pack-entry))
@@ -15210,7 +15178,7 @@ otherwise use cached data."
15210 (speedbar-change-expand-button-char ??) 15178 (speedbar-change-expand-button-char ??)
15211 (speedbar-change-expand-button-char ?-) 15179 (speedbar-change-expand-button-char ?-)
15212 ;; add package to `vhdl-speedbar-shown-unit-alist' 15180 ;; add package to `vhdl-speedbar-shown-unit-alist'
15213 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 15181 (let* ((unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15214 (vhdl-aput 'unit-alist token nil) 15182 (vhdl-aput 'unit-alist token nil)
15215 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)) 15183 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist))
15216 (speedbar-with-writable 15184 (speedbar-with-writable
@@ -15234,7 +15202,7 @@ otherwise use cached data."
15234 (while func-alist 15202 (while func-alist
15235 (setq func-entry (car func-alist) 15203 (setq func-entry (car func-alist)
15236 func-body-entry (vhdl-aget func-body-alist 15204 func-body-entry (vhdl-aget func-body-alist
15237 (car func-entry) t)) 15205 (car func-entry)))
15238 (when (nth 2 func-entry) 15206 (when (nth 2 func-entry)
15239 (vhdl-speedbar-make-subprogram-line 15207 (vhdl-speedbar-make-subprogram-line
15240 (nth 1 func-entry) 15208 (nth 1 func-entry)
@@ -15252,7 +15220,7 @@ otherwise use cached data."
15252 (speedbar-change-expand-button-char ?+) 15220 (speedbar-change-expand-button-char ?+)
15253 ;; remove package from `vhdl-speedbar-shown-unit-alist' 15221 ;; remove package from `vhdl-speedbar-shown-unit-alist'
15254 (let* ((key (vhdl-speedbar-line-key indent)) 15222 (let* ((key (vhdl-speedbar-line-key indent))
15255 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key t))) 15223 (unit-alist (vhdl-aget vhdl-speedbar-shown-unit-alist key)))
15256 (vhdl-adelete 'unit-alist token) 15224 (vhdl-adelete 'unit-alist token)
15257 (if unit-alist 15225 (if unit-alist
15258 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist) 15226 (vhdl-aput 'vhdl-speedbar-shown-unit-alist key unit-alist)
@@ -15267,14 +15235,14 @@ otherwise use cached data."
15267(defun vhdl-speedbar-insert-subpackages (subpack-alist indent dir-indent) 15235(defun vhdl-speedbar-insert-subpackages (subpack-alist indent dir-indent)
15268 "Insert required packages." 15236 "Insert required packages."
15269 (let* ((pack-alist (vhdl-aget vhdl-package-alist 15237 (let* ((pack-alist (vhdl-aget vhdl-package-alist
15270 (vhdl-speedbar-line-key dir-indent) t)) 15238 (vhdl-speedbar-line-key dir-indent)))
15271 pack-key lib-name pack-entry) 15239 pack-key lib-name pack-entry)
15272 (when subpack-alist 15240 (when subpack-alist
15273 (vhdl-speedbar-make-title-line "Packages Used:" indent)) 15241 (vhdl-speedbar-make-title-line "Packages Used:" indent))
15274 (while subpack-alist 15242 (while subpack-alist
15275 (setq pack-key (cdar subpack-alist) 15243 (setq pack-key (cdar subpack-alist)
15276 lib-name (caar subpack-alist)) 15244 lib-name (caar subpack-alist))
15277 (setq pack-entry (vhdl-aget pack-alist pack-key t)) 15245 (setq pack-entry (vhdl-aget pack-alist pack-key))
15278 (vhdl-speedbar-make-subpack-line 15246 (vhdl-speedbar-make-subpack-line
15279 (or (nth 0 pack-entry) pack-key) lib-name 15247 (or (nth 0 pack-entry) pack-key) lib-name
15280 (cons (nth 1 pack-entry) (nth 2 pack-entry)) 15248 (cons (nth 1 pack-entry) (nth 2 pack-entry))
@@ -15334,11 +15302,11 @@ NO-POSITION non-nil means do not re-position cursor."
15334 (while project-list 15302 (while project-list
15335 (setq file-alist (append file-alist 15303 (setq file-alist (append file-alist
15336 (vhdl-aget vhdl-file-alist 15304 (vhdl-aget vhdl-file-alist
15337 (car project-list) t))) 15305 (car project-list))))
15338 (setq project-list (cdr project-list))) 15306 (setq project-list (cdr project-list)))
15339 (setq file-alist 15307 (setq file-alist
15340 (vhdl-aget vhdl-file-alist 15308 (vhdl-aget vhdl-file-alist
15341 (abbreviate-file-name default-directory) t))) 15309 (abbreviate-file-name default-directory))))
15342 (select-frame speedbar-frame) 15310 (select-frame speedbar-frame)
15343 (set-buffer speedbar-buffer) 15311 (set-buffer speedbar-buffer)
15344 (speedbar-with-writable 15312 (speedbar-with-writable
@@ -15346,7 +15314,7 @@ NO-POSITION non-nil means do not re-position cursor."
15346 (save-excursion 15314 (save-excursion
15347 ;; unhighlight last units 15315 ;; unhighlight last units
15348 (let* ((file-entry (vhdl-aget file-alist 15316 (let* ((file-entry (vhdl-aget file-alist
15349 speedbar-last-selected-file t))) 15317 speedbar-last-selected-file)))
15350 (vhdl-speedbar-update-units 15318 (vhdl-speedbar-update-units
15351 "\\[.\\] " (nth 0 file-entry) 15319 "\\[.\\] " (nth 0 file-entry)
15352 speedbar-last-selected-file 'vhdl-speedbar-entity-face) 15320 speedbar-last-selected-file 'vhdl-speedbar-entity-face)
@@ -15366,7 +15334,7 @@ NO-POSITION non-nil means do not re-position cursor."
15366 "> " (nth 6 file-entry) 15334 "> " (nth 6 file-entry)
15367 speedbar-last-selected-file 'vhdl-speedbar-instantiation-face)) 15335 speedbar-last-selected-file 'vhdl-speedbar-instantiation-face))
15368 ;; highlight current units 15336 ;; highlight current units
15369 (let* ((file-entry (vhdl-aget file-alist file-name t))) 15337 (let* ((file-entry (vhdl-aget file-alist file-name)))
15370 (setq 15338 (setq
15371 pos (vhdl-speedbar-update-units 15339 pos (vhdl-speedbar-update-units
15372 "\\[.\\] " (nth 0 file-entry) 15340 "\\[.\\] " (nth 0 file-entry)
@@ -15862,8 +15830,8 @@ is already shown in a buffer."
15862 (ent-alist (vhdl-aget 15830 (ent-alist (vhdl-aget
15863 vhdl-entity-alist 15831 vhdl-entity-alist
15864 (or (vhdl-project-p) 15832 (or (vhdl-project-p)
15865 (abbreviate-file-name default-directory)) t)) 15833 (abbreviate-file-name default-directory))))
15866 (ent-entry (vhdl-aget ent-alist ent-key t))) 15834 (ent-entry (vhdl-aget ent-alist ent-key)))
15867 (setcar (cddr (cddr ent-entry)) arch-key) ; (nth 4 ent-entry) 15835 (setcar (cddr (cddr ent-entry)) arch-key) ; (nth 4 ent-entry)
15868 (speedbar-refresh)))) 15836 (speedbar-refresh))))
15869 15837
@@ -16272,7 +16240,7 @@ component instantiation."
16272 (setq constant-entry 16240 (setq constant-entry
16273 (cons constant-name 16241 (cons constant-name
16274 (if (match-string 1) 16242 (if (match-string 1)
16275 (or (vhdl-aget generic-alist (match-string 2) t) 16243 (or (vhdl-aget generic-alist (match-string 2))
16276 (error "ERROR: Formal generic \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)) 16244 (error "ERROR: Formal generic \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name))
16277 (cdar generic-alist)))) 16245 (cdar generic-alist))))
16278 (push constant-entry constant-alist) 16246 (push constant-entry constant-alist)
@@ -16293,7 +16261,7 @@ component instantiation."
16293 (setq signal-entry 16261 (setq signal-entry
16294 (cons signal-name 16262 (cons signal-name
16295 (if (match-string 1) 16263 (if (match-string 1)
16296 (or (vhdl-aget port-alist (match-string 2) t) 16264 (or (vhdl-aget port-alist (match-string 2))
16297 (error "ERROR: Formal port \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)) 16265 (error "ERROR: Formal port \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name))
16298 (cdar port-alist)))) 16266 (cdar port-alist))))
16299 (push signal-entry signal-alist) 16267 (push signal-entry signal-alist)
@@ -16536,7 +16504,7 @@ current project/directory."
16536 "." (file-name-extension (buffer-file-name)))) 16504 "." (file-name-extension (buffer-file-name))))
16537 (ent-alist (vhdl-aget vhdl-entity-alist 16505 (ent-alist (vhdl-aget vhdl-entity-alist
16538 (or project 16506 (or project
16539 (abbreviate-file-name default-directory)) t)) 16507 (abbreviate-file-name default-directory))))
16540 (lazy-lock-minimum-size 0) 16508 (lazy-lock-minimum-size 0)
16541 clause-pos component-pos) 16509 clause-pos component-pos)
16542 (message "Generating components package \"%s\"..." pack-name) 16510 (message "Generating components package \"%s\"..." pack-name)
@@ -16639,7 +16607,7 @@ current project/directory."
16639 (when (equal (nth 5 inst-entry) (nth 4 (car tmp-alist))) 16607 (when (equal (nth 5 inst-entry) (nth 4 (car tmp-alist)))
16640 (setq conf-key (nth 0 (car tmp-alist)))) 16608 (setq conf-key (nth 0 (car tmp-alist))))
16641 (setq tmp-alist (cdr tmp-alist))) 16609 (setq tmp-alist (cdr tmp-alist)))
16642 (setq conf-entry (vhdl-aget conf-alist conf-key t)) 16610 (setq conf-entry (vhdl-aget conf-alist conf-key))
16643 ;; insert binding indication ... 16611 ;; insert binding indication ...
16644 ;; ... with subconfiguration (if exists) 16612 ;; ... with subconfiguration (if exists)
16645 (if (and vhdl-compose-configuration-use-subconfiguration conf-entry) 16613 (if (and vhdl-compose-configuration-use-subconfiguration conf-entry)
@@ -16649,7 +16617,7 @@ current project/directory."
16649 (insert (vhdl-work-library) "." (nth 0 conf-entry)) 16617 (insert (vhdl-work-library) "." (nth 0 conf-entry))
16650 (insert ";\n")) 16618 (insert ";\n"))
16651 ;; ... with entity (if exists) 16619 ;; ... with entity (if exists)
16652 (setq ent-entry (vhdl-aget ent-alist (nth 5 inst-entry) t)) 16620 (setq ent-entry (vhdl-aget ent-alist (nth 5 inst-entry)))
16653 (when ent-entry 16621 (when ent-entry
16654 (indent-to (+ margin vhdl-basic-offset)) 16622 (indent-to (+ margin vhdl-basic-offset))
16655 (vhdl-insert-keyword "USE ENTITY ") 16623 (vhdl-insert-keyword "USE ENTITY ")
@@ -16661,7 +16629,7 @@ current project/directory."
16661 ;; b) from mra, or c) from first architecture 16629 ;; b) from mra, or c) from first architecture
16662 (or (nth 0 (vhdl-aget (nth 3 ent-entry) 16630 (or (nth 0 (vhdl-aget (nth 3 ent-entry)
16663 (or (nth 6 inst-entry) 16631 (or (nth 6 inst-entry)
16664 (nth 4 ent-entry)) t)) 16632 (nth 4 ent-entry))))
16665 (nth 1 (car (nth 3 ent-entry))))) 16633 (nth 1 (car (nth 3 ent-entry)))))
16666 (insert "(" arch-name ")")) 16634 (insert "(" arch-name ")"))
16667 (insert ";\n") 16635 (insert ";\n")
@@ -16671,7 +16639,7 @@ current project/directory."
16671 (indent-to (+ margin vhdl-basic-offset)) 16639 (indent-to (+ margin vhdl-basic-offset))
16672 (vhdl-compose-configuration-architecture 16640 (vhdl-compose-configuration-architecture
16673 (nth 0 ent-entry) arch-name ent-alist conf-alist 16641 (nth 0 ent-entry) arch-name ent-alist conf-alist
16674 (nth 3 (vhdl-aget (nth 3 ent-entry) (downcase arch-name) t)))))) 16642 (nth 3 (vhdl-aget (nth 3 ent-entry) (downcase arch-name)))))))
16675 ;; insert component configuration end 16643 ;; insert component configuration end
16676 (indent-to margin) 16644 (indent-to margin)
16677 (vhdl-insert-keyword "END FOR;\n") 16645 (vhdl-insert-keyword "END FOR;\n")
@@ -16695,10 +16663,10 @@ current project/directory."
16695 (vhdl-require-hierarchy-info) 16663 (vhdl-require-hierarchy-info)
16696 (let ((ent-alist (vhdl-aget vhdl-entity-alist 16664 (let ((ent-alist (vhdl-aget vhdl-entity-alist
16697 (or (vhdl-project-p) 16665 (or (vhdl-project-p)
16698 (abbreviate-file-name default-directory)) t)) 16666 (abbreviate-file-name default-directory))))
16699 (conf-alist (vhdl-aget vhdl-config-alist 16667 (conf-alist (vhdl-aget vhdl-config-alist
16700 (or (vhdl-project-p) 16668 (or (vhdl-project-p)
16701 (abbreviate-file-name default-directory)) t)) 16669 (abbreviate-file-name default-directory))))
16702 (from-speedbar ent-name) 16670 (from-speedbar ent-name)
16703 inst-alist conf-name conf-file-name pos) 16671 inst-alist conf-name conf-file-name pos)
16704 (vhdl-prepare-search-2 16672 (vhdl-prepare-search-2
@@ -16714,8 +16682,8 @@ current project/directory."
16714 vhdl-compose-configuration-name 16682 vhdl-compose-configuration-name
16715 (concat ent-name " " arch-name))) 16683 (concat ent-name " " arch-name)))
16716 (setq inst-alist 16684 (setq inst-alist
16717 (nth 3 (vhdl-aget (nth 3 (vhdl-aget ent-alist (downcase ent-name) t)) 16685 (nth 3 (vhdl-aget (nth 3 (vhdl-aget ent-alist (downcase ent-name)))
16718 (downcase arch-name) t)))) 16686 (downcase arch-name)))))
16719 (message "Generating configuration \"%s\"..." conf-name) 16687 (message "Generating configuration \"%s\"..." conf-name)
16720 (if vhdl-compose-configuration-create-file 16688 (if vhdl-compose-configuration-create-file
16721 ;; open configuration file 16689 ;; open configuration file
@@ -16930,7 +16898,7 @@ do not print any file names."
16930 (interactive) 16898 (interactive)
16931 (vhdl-compile-init) 16899 (vhdl-compile-init)
16932 (let* ((project (vhdl-aget vhdl-project-alist vhdl-project)) 16900 (let* ((project (vhdl-aget vhdl-project-alist vhdl-project))
16933 (compiler (or (vhdl-aget vhdl-compiler-alist vhdl-compiler nil) 16901 (compiler (or (vhdl-aget vhdl-compiler-alist vhdl-compiler)
16934 (error "ERROR: No such compiler: \"%s\"" vhdl-compiler))) 16902 (error "ERROR: No such compiler: \"%s\"" vhdl-compiler)))
16935 (command (nth 0 compiler)) 16903 (command (nth 0 compiler))
16936 (default-directory (vhdl-compile-directory)) 16904 (default-directory (vhdl-compile-directory))
@@ -17065,9 +17033,9 @@ specified by a target."
17065 (vhdl-scan-directory-contents directory)))) 17033 (vhdl-scan-directory-contents directory))))
17066 (let* ((directory (abbreviate-file-name (vhdl-default-directory))) 17034 (let* ((directory (abbreviate-file-name (vhdl-default-directory)))
17067 (project (vhdl-project-p)) 17035 (project (vhdl-project-p))
17068 (ent-alist (vhdl-aget vhdl-entity-alist (or project directory) t)) 17036 (ent-alist (vhdl-aget vhdl-entity-alist (or project directory)))
17069 (conf-alist (vhdl-aget vhdl-config-alist (or project directory) t)) 17037 (conf-alist (vhdl-aget vhdl-config-alist (or project directory)))
17070 (pack-alist (vhdl-aget vhdl-package-alist (or project directory) t)) 17038 (pack-alist (vhdl-aget vhdl-package-alist (or project directory)))
17071 (regexp-list (or (nth 12 (vhdl-aget vhdl-compiler-alist vhdl-compiler)) 17039 (regexp-list (or (nth 12 (vhdl-aget vhdl-compiler-alist vhdl-compiler))
17072 '("\\1.vhd" "\\2_\\1.vhd" "\\1.vhd" 17040 '("\\1.vhd" "\\2_\\1.vhd" "\\1.vhd"
17073 "\\1.vhd" "\\1_body.vhd" identity))) 17041 "\\1.vhd" "\\1_body.vhd" identity)))
@@ -17397,9 +17365,9 @@ specified by a target."
17397 (setq subcomp-list 17365 (setq subcomp-list
17398 (sort (vhdl-uniquify (nth 2 (car prim-list))) 'string<)) 17366 (sort (vhdl-uniquify (nth 2 (car prim-list))) 'string<))
17399 (setq unit-key (caar prim-list) 17367 (setq unit-key (caar prim-list)
17400 unit-name (or (nth 0 (vhdl-aget ent-alist unit-key t)) 17368 unit-name (or (nth 0 (vhdl-aget ent-alist unit-key))
17401 (nth 0 (vhdl-aget conf-alist unit-key t)) 17369 (nth 0 (vhdl-aget conf-alist unit-key))
17402 (nth 0 (vhdl-aget pack-alist unit-key t)))) 17370 (nth 0 (vhdl-aget pack-alist unit-key))))
17403 (insert "\n" unit-key) 17371 (insert "\n" unit-key)
17404 (unless (equal unit-key unit-name) 17372 (unless (equal unit-key unit-name)
17405 (insert " \\\n" unit-name)) 17373 (insert " \\\n" unit-name))