• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/progmodes/

Lines Matching +defs:face +defs:or +defs:list

20 ;; GNU Emacs is free software; you can redistribute it and/or modify
22 ;; the Free Software Foundation; either version 2, or (at your option)
27 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
50 ;; - Sensitivity list updating
68 ;; See comment string of function `vhdl-mode' or type `C-c C-h' in Emacs.
82 ;; or into an arbitrary directory that is added to the load path by the
93 ;; directory of your Emacs installation or to your Emacs start-up file `.emacs'
165 '/' or is empty)."
183 \"\\(.*\\)_[io]$\" \"\\1\" strips off \"_i\" or \"_o\" from original string
342 Each list entry specifies the following items for a compiler:
349 Generate Makefile: use built-in function or command to generate a Makefile
400 Please send any missing or erroneous compiler properties to the maintainer for
404 in the choice list of option `vhdl-compiler' by restarting Emacs."
406 (list :tag "Compiler" :indent 2
422 (list :tag "Error message" :indent 4
427 (list :tag "File message" :indent 4
433 (list :tag "To string" :indent 4
450 :type (let ((alist vhdl-compiler-alist) list)
452 (setq list (cons (list 'const (caar alist)) list))
454 (append '(choice) (nreverse list)))
539 All other paths can be absolute or relative to the default directory. All
548 entry with the empty string or \"./\". Exclude regexp allows to filter out
549 specific file and directory names from the list of sources (e.g. CVS
565 default options (e.g. \"-file\") in project- or file-specific options (e.g.
568 NOTE: Reflect the new setting in the choice list of option `vhdl-project'
571 (list :tag "Project" :indent 2
582 (list :tag "Compiler" :indent 6
583 ,(let ((alist vhdl-compiler-alist) list)
585 (setq list (cons (list 'const (caar alist)) list))
588 (nreverse list)))
618 :type (let ((alist vhdl-project-alist) list)
620 (setq list (cons (list 'const (caar alist)) list))
623 (nreverse list)))
677 :type '(list (choice :tag "Basic standard"
701 This is done when typed or expanded or by the fix case functions."
704 (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
709 This is done when expanded or by the fix case functions."
712 (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
717 This is done when expanded or by the fix case functions."
720 (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
725 This is done when expanded or by the fix case functions."
728 (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
736 (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
758 attaching or stripping off a substring). The file extension is automatically
770 and/or architecture name (e.g. attaching or stripping off a substring). The
785 name (e.g. attaching or stripping off a substring). The file extension is
797 attaching or stripping off a substring). The file extension is automatically
799 in a different directory by prepending a relative or absolute path to the
863 (defcustom vhdl-argument-list-indent nil
873 (defcustom vhdl-association-list-with-formals t
877 If nil, only a list of actual parameters is entered."
925 "*String or file to insert as file header.
955 "*String or file to insert as file footer.
1074 VHDL models (templates) can be specified by the user in this list. They can be
1075 invoked from the menu, through key bindings (`C-c C-m ...'), or by keyword
1076 electrification (i.e. overriding existing or creating new keywords, see
1079 String : string or name of file to be inserted as model (newline: `C-j')
1101 :type '(repeat (list :tag "Model" :indent 2
1124 \(e.g. attaching or stripping off a substring).
1135 The configuration name can be obtained by modifying the entity and/or
1136 architecture name (e.g. attaching or stripping off a substring). The string
1151 \(e.g. attaching or stripping off a substring). If no project is defined, the
1244 modifying the formal port name (e.g. attaching or stripping off a substring)."
1254 instantiated (e.g. attaching or stripping off a substring). \"%d\" is replaced
1271 the component to be tested (e.g. attaching or stripping off a substring)."
1281 the component to be tested (e.g. attaching or stripping off a substring).
1292 and/or architecture name (e.g. attaching or stripping off a substring). The
1306 or stripping off a substring)."
1321 "*String or file to be inserted in the testbench declarative part.
1341 "*String or file to be inserted in the testbench statement part.
1381 \(e.g. attaching or stripping off a substring). The file extension is
1383 files can be created in a different directory by prepending a relative or
1394 and/or architecture name (e.g. attaching or stripping off a substring). The
1398 a different directory by prepending a relative or absolute path to the file
1461 \"^\\s-*\\(--.*\\)?$\": matches an empty line or a comment-only line"
1467 When a region or the entire buffer is aligned, the code is divided into
1482 `font-lock-keyword-face' : keywords
1483 `font-lock-type-face' : standardized types
1484 `vhdl-font-lock-attribute-face': standardized attributes
1485 `vhdl-font-lock-enumvalue-face': standardized enumeration values
1486 `vhdl-font-lock-function-face' : standardized function and package names
1498 `font-lock-function-name-face' : names in declarations of units,
1500 `font-lock-type-face' : names in type/nature declarations
1501 `vhdl-font-lock-attribute-face': names in attribute declarations
1502 `font-lock-variable-name-face' : names in declarations of signals,
1527 The reserved words specified in option `vhdl-forbidden-words' or having the
1529 warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to
1542 Verilog keywords are highlighted in a warning color (face
1543 `vhdl-font-lock-reserved-words-face') to indicate not to use them.
1557 \(face `vhdl-font-lock-translate-off-face').
1600 different kinds of signals (e.g. \"Clk50\", \"Rst_n\") or objects (e.g.
1602 common substrings or name suffices.
1603 For each entry, a new face is generated with the specified colors and name
1604 \"vhdl-font-lock-\" + name + \"-face\".
1608 :type '(repeat (list :tag "Face" :indent 2
1635 highlights identifiers with 10 or more characters).
1669 Alternatively, the displaying mode can be selected from the speedbar menu or
1670 by typing `f' (files), `h' (directory hierarchy) or `H' (project hierarchy)."
1684 In case of files not or incompletely scanned, a warning message and the file
1689 :type '(list (choice :tag "Design units"
1693 (list :tag "Hierarchy" :indent 2
1796 else if last command was a `TAB' or `RET' then dedent one step,
1908 "*Association list of syntactic element symbols and indentation offsets.
1909 As described below, each cons cell in this list has the form:
1914 context of the line by generating a list of symbols called syntactic
1915 elements. This list can contain more than one syntactic element and
1916 the global variable `vhdl-syntactic-context' contains the context list
1917 for the line being indented. Each element in this list is actually a
1923 After the syntactic context list for a line is generated, `vhdl-mode'
1925 syntactic element in the list. First, it compares the syntactic
1929 list is the absolute offset for line being indented.
1935 Actually, OFFSET can be an integer, a function, a variable, or one of
1936 the following symbols: `+', `-', `++', or `--'. These latter
1937 designate positive or negative multiples of `vhdl-basic-offset',
1943 Here is the current list of valid syntactic element symbols:
1954 arglist-intro -- the first line in an argument list
1955 arglist-cont -- subsequent argument list lines when no
1958 arglist-cont-nonempty -- subsequent argument list lines when at
1961 arglist-close -- the solo close paren of an argument list
1970 Can contain an integer or a cons cell of the form:
1997 case, the VALUE is a list containing elements of the form:
2006 (or (assoc "Default" vhdl-style-alist)
2112 (list dirpart)))
2115 (when (or (null (car dirs)) ; Possible if DIRPART is not wild.
2123 (directory-files (or (car dirs) ".") full
2164 (unless (or nobeep noninteractive) (beep)))
2215 (cons (list (nth 0 elem) (nth 1 elem) "" (nth 2 elem)
2238 (cons (list (nth 0 elem) (nth 1 elem) "" "make -f \\1"
2281 (setq vhdl-project-file-name (list vhdl-project-file-name))
2298 (or (eq standard (car vhdl-standard))
2302 "Return non-nil if a project is displayed, i.e. directories or files are
2319 "Return the default directory of the current project or the directory of the
2355 result overlay-all-list overlay-intangible-list overlay
2362 (while overlay-intangible-list
2363 (overlay-put (car overlay-intangible-list) 'intangible t)
2364 (setq overlay-intangible-list
2365 (cdr overlay-intangible-list)))))))
2370 (setq overlay-all-list (overlay-lists))
2371 (setq overlay-all-list
2372 (append (car overlay-all-list) (cdr overlay-all-list)))
2373 (while overlay-all-list
2374 (setq overlay (car overlay-all-list))
2376 (setq overlay-intangible-list
2377 (cons overlay overlay-intangible-list))
2379 (setq overlay-all-list (cdr overlay-all-list))))
2398 (when (or (and visiting-buffer (set-buffer visiting-buffer))
2433 (jka-compr-compression-info-list nil))
2442 (let ((dir-list (list (file-name-as-directory directory)))
2443 file-list)
2444 (setq file-list (vhdl-directory-files directory t "\\w.*"))
2445 (while file-list
2446 (when (file-directory-p (car file-list))
2447 (setq dir-list (append dir-list (vhdl-get-subdirs (car file-list)))))
2448 (setq file-list (cdr file-list)))
2449 dir-list))
2457 (defun vhdl-delete (elt list)
2459 (setq list (cons nil list))
2460 (let ((list1 list))
2463 (when list
2465 (cdr list))
2468 "Refresh directory or project with name KEY."
2493 (or (eq vhdl-use-direct-instantiation 'always)
2507 (defun vhdl-menu-split (list title)
2510 (if (> (length list) vhdl-menu-max-size)
2511 (let ((remain list)
2531 list))
2686 (define-key vhdl-mode-map "\M-\C-u" 'vhdl-backward-up-list)
2744 (define-key vhdl-mode-map "\C-c\C-a\C-l" 'vhdl-align-list)
2750 (define-key vhdl-mode-map "\C-c\C-f\C-l" 'vhdl-fill-list)
2751 (define-key vhdl-mode-map "\C-c\C-f\C-f" 'vhdl-fill-list)
2771 (define-key vhdl-mode-map "\C-c\C-u\C-s" 'vhdl-update-sensitivity-list-process)
2772 (define-key vhdl-mode-map "\C-c\C-u\M-s" 'vhdl-update-sensitivity-list-buffer)
2885 "Buffer local variable containing syntactic analysis list.")
2967 ("or" "" vhdl-template-default-hook 0)
3033 abbrev-list keyword)
3037 (setq abbrev-list
3038 (cons (list keyword ""
3041 abbrev-list)))
3043 abbrev-list)))))
3178 (let ((project-alist vhdl-project-alist) menu-list name)
3181 (setq menu-list
3184 menu-list))
3186 (setq menu-list
3188 (sort menu-list
3190 (nreverse menu-list)))
3191 (vhdl-menu-split menu-list "Project"))
3217 (let ((comp-alist vhdl-compiler-alist) menu-list name)
3220 (setq menu-list
3223 menu-list))
3225 (setq menu-list (nreverse menu-list))
3226 (vhdl-menu-split menu-list "Compiler"))
3308 (list
3345 (let ((model-alist vhdl-model-alist) menu-list model)
3348 (setq menu-list
3354 menu-list))
3356 (setq menu-list (nreverse menu-list))
3357 (vhdl-menu-split menu-list "Model"))
3364 ["Paste As Entity" vhdl-port-paste-entity vhdl-port-list]
3365 ["Paste As Component" vhdl-port-paste-component vhdl-port-list]
3367 :keys "C-c C-p C-i" :active vhdl-port-list]
3368 ["Paste As Signals" vhdl-port-paste-signals vhdl-port-list]
3369 ["Paste As Constants" vhdl-port-paste-constants vhdl-port-list]
3370 ["Paste As Generic Map" vhdl-port-paste-generic-map vhdl-port-list]
3371 ["Paste As Initializations" vhdl-port-paste-initializations vhdl-port-list]
3373 ["Paste As Testbench" vhdl-port-paste-testbench vhdl-port-list]
3376 :style toggle :selected vhdl-port-flattened :active vhdl-port-list]
3378 :style toggle :selected vhdl-port-reversed-direction :active vhdl-port-list])
3382 ["Place Component" vhdl-compose-place-component vhdl-port-list]
3390 ["Paste As Declaration" vhdl-subprog-paste-declaration vhdl-subprog-list]
3391 ["Paste As Body" vhdl-subprog-paste-body vhdl-subprog-list]
3392 ["Paste As Call" vhdl-subprog-paste-call vhdl-subprog-list]
3395 :style toggle :selected vhdl-subprog-flattened :active vhdl-subprog-list])
3440 ["List" vhdl-align-list t]
3449 ["List" vhdl-fill-list t]
3467 ["Sensitivity List" vhdl-update-sensitivity-list-process t]
3468 ["Sensitivity List Buffer" vhdl-update-sensitivity-list-buffer t])
3514 (let ((project-alist vhdl-project-alist) menu-list name)
3517 (setq menu-list
3522 menu-list))
3524 (setq menu-list (nreverse menu-list))
3525 (vhdl-menu-split menu-list "Project")))
3544 (let ((comp-alist vhdl-compiler-alist) menu-list name)
3547 (setq menu-list
3550 menu-list))
3552 (setq menu-list (nreverse menu-list))
3553 (vhdl-menu-split menu-list "Compler")))
3567 (list '87 (cadr vhdl-standard)))
3572 (list '93 (cadr vhdl-standard)))
3578 'vhdl-standard (list (car vhdl-standard)
3586 'vhdl-standard (list (car vhdl-standard)
3682 (customize-set-variable 'vhdl-argument-list-indent
3683 (not vhdl-argument-list-indent))
3684 :style toggle :selected vhdl-argument-list-indent]
3686 (customize-set-variable 'vhdl-association-list-with-formals
3687 (not vhdl-association-list-with-formals))
3688 :style toggle :selected vhdl-association-list-with-formals]
4031 (defvar vhdl-mode-menu-list (vhdl-create-mode-menu)
4037 (easy-menu-remove vhdl-mode-menu-list) ; for XEmacs
4038 (setq vhdl-mode-menu-list (vhdl-create-mode-menu))
4039 (easy-menu-add vhdl-mode-menu-list) ; for XEmacs
4041 "Menu keymap for VHDL Mode." vhdl-mode-menu-list))
4087 (if (or (not (boundp 'font-lock-maximum-size))
4108 "Get list of VHDL source files in DIRECTORY or current directory."
4123 (or directory default-directory) full filename-regexp)))
4131 (file-list (vhdl-get-source-files))
4132 menu-list found)
4133 ;; Create list for menu
4135 (while file-list
4137 (setq menu-list (cons (vector (car file-list)
4138 (list 'find-file (car file-list)) t)
4139 menu-list))
4140 (setq file-list (cdr file-list)))
4141 (setq menu-list (vhdl-menu-split menu-list "Sources"))
4142 (when found (setq menu-list (cons "--" menu-list)))
4143 (setq menu-list (cons ["*Rescan*" vhdl-add-source-files-menu t] menu-list))
4144 (setq menu-list (cons "Sources" menu-list))
4146 (easy-menu-add menu-list)
4148 "VHDL source files menu" menu-list))
4167 `RET' or `C-g' at the first \(mandatory) prompt aborts the current
4176 electrification) can be disabled (enabled) by typing `C-c C-m C-e' or by
4180 bindings, by typing `C-c C-i C-c' and choosing a construct, or by typing
4197 Stuttering can be disabled (enabled) by typing `C-c C-m C-s' or by
4209 Typing `TAB' after a (not completed) word looks for a VHDL keyword or a
4258 \(`M-C-\\') or the entire buffer (menu). Argument and port lists are
4259 indented normally (nil) or relative to the opening parenthesis (non-nil)
4260 according to option `vhdl-argument-list-indent'.
4274 indent. `C-c C-a C-l' aligns all lines belonging to a list enclosed by
4275 a pair of parentheses (e.g. port clause/map, argument list), and `C-c
4296 Code filling allows to condense code (e.g. sensitivity lists or port
4298 lines are maximally filled (block filling). `C-c C-f C-f' fills a list
4305 `C-c M-b' and `C-c C-b' beautify the code of a region or of the entire
4314 Generic and port clauses from entity or component declarations can be
4321 `vhdl-association-list-with-formals'. To include comments in pasting,
4339 and then pasted as a subprogram declaration, body or call (uses
4340 association list with formals).
4373 contained in the source files of the current directory or the specified
4377 project hierarchy browsing mode in the speedbar menu or by typing `f',
4378 `h' or `H' in speedbar.
4392 multiple declarations of the same unit or missing primary units that are
4400 \(`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally,
4404 connected by a signal (internal signal or port)
4413 create higher design levels with only a few mouse clicks or key
4423 an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct
4428 | the menu (`C-c C-c C-f') (for the architecture the cursor is in) or from
4432 | `vhdl-compose-configuration-hierarchical') or include subconfigurations
4490 project be selected using option `vhdl-project' (permanently) or from
4491 the menu or speedbar (temporarily). For each project, title and
4501 Emacs with VHDL Mode (i.e. load a VHDL file or use \"emacs -l
4513 option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu
4533 region (menu) or buffer (`C-c C-x C-c') according to the options
4545 Additional reserved words or words with a forbidden syntax (e.g. words
4547 `vhdl-forbidden-words' or `vhdl-forbidden-syntax' and be highlighted in
4556 of signals or other objects by using name suffices) and to support them
4576 in the menu, through key bindings (`C-c C-m ...'), or by keyword
4583 be hidden using the `Hide/Show' menu or by pressing `S-mouse-2' within
4589 - Sensitivity List: `C-c C-u C-s' updates the sensitivity list of the
4603 \(e.g. if the closing parenthesis is on the wrong line or is missing).
4608 used if `vhdl-print-customize-faces' is non-nil) or colors \(if
4625 the \"Customize\" menu entry or the command `M-x customize-option' (`M-x
4632 what other useful user options there are (`M-x vhdl-customize' or menu)!
4649 - Type `C-g C-g' to interrupt long operations or if Emacs hangs.
4666 The `vhdl-mode-announce' mailing list informs about new VHDL Mode releases.
4667 The `vhdl-mode-victims' mailing list informs about new VHDL Mode beta
4729 (list
4751 (easy-menu-add vhdl-mode-menu-list) ; for XEmacs
4753 "Menu keymap for VHDL Mode." vhdl-mode-menu-list)
4829 "of" "on" "open" "or" "others" "out"
4860 "nand" "negedge" "nmos" "nor" "not" "notif0" "notif1" "or" "output"
5103 (vhdl-abbrev-list-init))
5108 (defvar vhdl-abbrev-list nil
5111 (defun vhdl-abbrev-list-init ()
5112 (setq vhdl-abbrev-list
5114 (list vhdl-upper-case-keywords) vhdl-keywords
5115 (list vhdl-upper-case-types) vhdl-types
5116 (list vhdl-upper-case-attributes) vhdl-attributes
5117 (list vhdl-upper-case-enum-values) vhdl-enum-values
5118 (list vhdl-upper-case-constants) vhdl-constants
5119 (list nil) vhdl-functions
5120 (list nil) vhdl-packages)))
5164 This function does not modify point or mark."
5165 (or (and (eq 'quote (car-safe position))
5202 "A simple macro to append the syntax in SYMBOL to the syntax list.
5208 "A simple macro to return check the syntax list.
5218 (errmsg "Offset must be int, func, var, or one of +, -, ++, --: ")
5248 (if current-prefix-arg " or add" "")
5257 ;; on the syntactic analysis list for the current
5265 (list langelem offset current-prefix-arg)))
5267 (or (eq offset '+)
5274 (error "ERROR: Offset must be int, func, var, or one of +, -, ++, --: %s"
5292 (interactive (list (completing-read "Use which VHDL indentation style? "
5296 (or vars
5328 or added to the indentation at RELPOS. If RELPOS is nil, then
5334 ;; offset can be a number, a function, a variable, or one of the
5335 ;; symbols + or -
5408 (lim (or lim (vhdl-point 'bod))))
5441 ;; preceded by zero or two backslashes.
5453 ;; defined as lexical whitespace or comments. Search no farther back
5454 ;; or forward than optional LIM. If LIM is omitted, (point-min) is
5477 (let ((lim (or lim (point-max)))
5516 (let ((lim (or lim (vhdl-point 'bod)))
5525 (while (not (or (and (= (following-char) ?-)
5551 (save-excursion (or (eq (progn (forward-sexp) (point))
5626 ;; procedure interface list, and is harmless in other
5628 ;; following search list so that we don't run into
5629 ;; semicolons in the function interface list.
5636 (if (or (= (preceding-char) ?_)
5652 (or (eq (following-char) ?\;)
5695 appear is aref 1 or nil if any column is suitable.
5708 (or (vhdl-first-word (point))
5717 (or (vhdl-first-word (point))
5729 (or (vhdl-first-word (point))
5738 (or (vhdl-first-word (point))
5755 (or (not (looking-at "else"))
5760 (or (eq (following-char) ?\;)
5769 appear is aref 1 or nil if any column is suitable. The supplementary
5770 keyword to search forward for is aref 2 or nil if this is not
5936 (if (or (= (preceding-char) ?_)
5940 (or (eq (following-char) ?\;)
5950 "Move backward to the previous \"begin\" or \"end\" keyword."
5954 (if (or (= (preceding-char) ?_)
5977 (let ((count (or count 1))
6000 ;; or nil
6009 ;; If we are in a literal, or not in the right target
6012 (if (or (and column
6045 (let ((count (or count 1))
6072 ;; or nil
6085 ;; If we are in a literal or in the wrong column,
6087 (if (or (and column
6091 (or (not internal-p)
6099 (or (not (listp begin-re))
6121 (if (or (= (preceding-char) ?_)
6149 (defun vhdl-backward-up-list (&optional count limit)
6153 (let ((count (or count 1))
6188 stops due to beginning or end of buffer.
6205 ;; If we are in a literal, or not at a real libunit, then try again.
6206 (if (or (= (preceding-char) ?_)
6215 (if (or (= (preceding-char) ?_)
6232 stops due to beginning or end of buffer."
6239 (let ((count (or count 1))
6256 (if (or (= (preceding-char) ?_)
6268 (if (or (= (preceding-char) ?_)
6293 one. If within a string or comment, or next to a comment (only
6300 (let ((count (or count 1))
6302 (lim (or lim (point-min)))
6309 (or (nth 3 state)
6334 "Move to the start of the current statement, or the previous
6336 (let ((lim (or lim (point-min)))
6344 (backward-up-list 1)
6352 (if (or (= (preceding-char) ?_)
6454 (lim (or lim (point-min)))
6480 (or preceding-sexp
6483 ;; front of list
6493 (or (vhdl-safe (vhdl-backward-sexp 1 lim) (point))
6497 (or preceding-sexp
6502 (or (null containing-sexp)
6519 (let ((lim (or lim (point-max)))
6546 (let ((lim (or lim (point-min)))
6562 (let ((lim (or lim (point-max))))
6640 ;; CASE 1: in a string or comment.
6675 (or (bobp)
6688 ;; either in a subprogram argument (interface) list, or a
6698 ;; argument list.
6744 ;; check it's not a trailer begin keyword, or a begin
6747 (or (looking-at vhdl-trailer-re)
6769 (or (not (looking-at vhdl-case-alternative-re))
6878 (backward-up-list 1)
6894 (or (eolp)
6914 (backward-up-list 1)
6925 ;; at or to the right of comment-column
6930 (or (car-safe vhdl-comment-only-line-offset)
6932 (or (cdr-safe vhdl-comment-only-line-offset)
6995 "If preceeding character is part of a word or a paren then hippie-expand,
6997 else if last command was a tab or return then dedent one step or if a comment
7008 (or (and (boundp 'hippie-expand-only-buffers)
7013 ((or (= (preceding-char) ?\() (= (preceding-char) ?\)))
7022 (or (eq last-command 'vhdl-electric-tab)
7034 (or (eq last-command 'vhdl-electric-tab)
7042 "newline-and-indent or indent-new-comment-line if in comment and preceding
7062 ;; special case: comments at or right of comment-column
7117 "Indent each line of the list starting just after point.
7154 (setq expurgated (append expurgated (list elt))))))
7195 "The format of this alist is (MODES [or MODE] REGEXP ALIGN-PATTERN SUBEXP).
7198 region. ALIGN-PATTERN must include the whitespace to be expanded or
7226 (defun vhdl-do-list (function &optional spacing)
7227 "Apply FUNCTION to the lines of a list surrounded by a balanced group of
7238 (forward-list)
7246 (error "ERROR: Not within a list enclosed by a pair of parentheses"))))
7255 (or (looking-at "^\\s-*\\(--.*\\)?$")
7263 (or (looking-at "^\\s-*\\(--.*\\)?$")
7272 (defun vhdl-align-region-1 (begin end &optional spacing alignment-list indent)
7274 lines. The definition of `alignment-list' determines the matching
7279 (setq alignment-list (or alignment-list vhdl-align-alist))
7280 (setq spacing (or spacing 1))
7290 (let ((copy (copy-alist alignment-list)))
7298 (when (and (or (and (listp (car element))
7301 (or vhdl-align-try-all-clauses
7315 (setq spacing (or spacing 1))
7316 (setq substr (or substr 1))
7415 ;; is argument list opening?
7418 ;; determine region for argument list
7429 (or (looking-at "^\\s-*\\(--.*\\)?$")
7448 (defun vhdl-align-list (&optional spacing)
7449 "Align the lines of a list surrounded by a balanced group of parentheses."
7451 (vhdl-do-list 'vhdl-align-region-groups spacing))
7487 comment-list start-list tmp-list start length
7489 (setq spacing (or spacing 2))
7502 (setq comment-list (cons (cons start length) comment-list)))
7504 (setq comment-list
7505 (sort comment-list (function (lambda (a b) (> (car a) (car b))))))
7507 (setq start-list (list (caar comment-list)))
7508 (setq comment-list (cdr comment-list))
7509 (while comment-list
7510 (unless (or (= (caar comment-list) (car start-list))
7511 (<= (+ (car start-list) (cdar comment-list))
7513 (setq start-list (cons (caar comment-list) start-list)))
7514 (setq comment-list (cdr comment-list)))
7520 (or (and (looking-at "^\\(.*[^ \t\n-]+\\)\\(\\s-*\\)\\(--.*\\)$")
7534 (setq tmp-list start-list)
7551 (while (and tmp-list (< (car tmp-list) start))
7552 (setq tmp-list (cdr tmp-list)))
7553 (car tmp-list))))
7653 (while (or (and (looking-at "--.*\n") (re-search-forward "--.*\n" end t))
7728 (defun vhdl-fill-list ()
7729 "Fill the lines of a list surrounded by a balanced group of parentheses."
7731 (vhdl-do-list 'vhdl-fill-region))
7744 ;; Sensitivity list update
7747 ;; - no sensitivity list is generated for processes with wait statements
7750 ;; 2. scan for all signals already in the sensitivity list (in order to catch
7752 ;; 3. signals from 1. and 2. form the list of visible signals
7757 ;; 6. replace sensitivity list by list of signals from 5.
7759 (defun vhdl-update-sensitivity-list-process ()
7760 "Update sensitivity list of current process."
7770 (message "Updating sensitivity list...")
7771 (vhdl-update-sensitivity-list)
7772 (message "Updating sensitivity list...done")))))
7774 (defun vhdl-update-sensitivity-list-buffer ()
7775 "Update sensitivity list of all processes in current buffer."
7783 (condition-case nil (vhdl-update-sensitivity-list) (error "")))
7786 (defun vhdl-update-sensitivity-list ()
7787 "Update sensitivity list."
7791 seq-region-list)
7793 ;; search for wait statement (no sensitivity list allowed)
7796 (error "ERROR: Process with wait statement, sensitivity list not generated"))
7797 ;; combinational process (update sensitivity list)
7801 ((visible-list (vhdl-get-visible-signals))
7803 (scan-regions-list
7826 ;; parameter list of procedure call
7831 name read-list sens-list signal-list
7833 ;; scan for signals in old sensitivity list
7844 (setq sens-list
7845 (cons (downcase (match-string 0)) sens-list))
7847 (setq signal-list (append visible-list sens-list))
7856 (setq seq-region-list (cons (cons end (point)) seq-region-list))
7859 (while scan-regions-list
7861 (while (and (setq beg (eval (nth 0 (car scan-regions-list))))
7862 (setq end (eval (nth 1 (car scan-regions-list)))))
7864 (unless (or (vhdl-in-literal)
7865 (and seq-region-list
7866 (let ((tmp-list seq-region-list))
7867 (while (and tmp-list
7868 (< (point) (caar tmp-list)))
7869 (setq tmp-list (cdr tmp-list)))
7870 (and tmp-list (< (point) (cdar tmp-list))))))
7877 (member (downcase name) signal-list))
7878 (unless (member-ignore-case name read-list)
7879 (setq read-list (cons name read-list))))
7881 (setq scan-regions-list (cdr scan-regions-list)))
7882 ;; update sensitivity list
7886 (when read-list
7888 (setq read-list (sort read-list 'string<))
7889 (when read-list
7891 (insert (car read-list))
7892 (setq read-list (cdr read-list))
7893 (while read-list
7895 (if (<= (+ (current-column) (length (car read-list)) 2)
7899 (insert (car read-list))
7900 (setq read-list (cdr read-list)))))))))
7904 (let (beg end signal-list entity-name file-name)
7936 (setq signal-list
7937 (cons (downcase (match-string 1)) signal-list))
7955 (setq signal-list
7956 (cons (downcase (match-string 1)) signal-list))
7960 (member (downcase (match-string 2)) signal-list))
7961 (setq signal-list
7962 (cons (downcase (match-string 1)) signal-list))
7981 (setq signal-list
7982 (cons (downcase (match-string 1)) signal-list))
7986 (member (downcase (match-string 2)) signal-list))
7987 (setq signal-list
7988 (cons (downcase (match-string 1)) signal-list))
7991 signal-list)))
8056 "Indicates whether a template has been invoked by a hook or by key or menu.
8065 "Return the working library name of the current project or \"work\" if no
8068 (or (nth 6 (aget vhdl-project-alist vhdl-project)) vhdl-default-library)))
8076 (and (or vhdl-electric-mode vhdl-stutter-mode) "/")
8083 Turn on if ARG positive, turn off if ARG negative, toggle if ARG zero or nil."
8086 (cond ((or (not arg) (zerop arg)) (not vhdl-electric-mode))
8092 Turn on if ARG positive, turn off if ARG negative, toggle if ARG zero or nil."
8095 (cond ((or (not arg) (zerop arg)) (not vhdl-stutter-mode))
8127 (list (vhdl-character-to-event next-input))))))
8129 (list (vhdl-character-to-event next-input)))
8220 (concat "[type" (and (vhdl-standard-p 'ams) " or nature") "]")
8252 (when (or (vhdl-template-field "range" nil (not secondary) start (point))
8277 "Insert an attribute declaration or specification."
8280 "attribute" "(d)eclaration or (s)pecification?" t) ?s)
8345 (while (or
8359 (if (vhdl-template-field "[sensitivity list]" nil t)
8376 (if (or (not (eq vhdl-optional-labels 'all)) (vhdl-standard-p '87))
8444 (vhdl-template-generic-list t t)
8447 (vhdl-template-port-list t)
8464 (setq unit (upcase (or unit "")))
8522 a block or component configuration if within a configuration declaration,
8535 "configuration" "(b)lock or (c)omponent configuration?" t) ?c)
8560 (setq aspect (upcase (or aspect "")))
8623 (in-arglist (vhdl-in-argument-list-p)))
8689 (when (or (vhdl-sequential-statement-p) (vhdl-standard-p 'ams))
8717 (when (vhdl-template-generic-list t)
8721 (when (vhdl-template-port-list t)
8762 "Insert a block or component configuration if within a configuration
8765 sequential statement part (subprogram or process), and a for-generate
8776 "for" "(b)lock or (c)omponent configuration?" t) ?c)
8831 "Insert a function declaration or body."
8838 (vhdl-template-argument-list t)
8846 (eq (vhdl-decision-query nil "(d)eclaration or (b)ody?") ?b))
8866 (if (eq (vhdl-decision-query nil "(f)or or (i)f?" t) ?i)
8871 "Insert generic declaration, or generic map in instantiation statements."
8879 (vhdl-template-generic-list nil))
8880 ((or (save-excursion
8881 (or (beginning-of-line)
8886 (t (vhdl-template-generic-list nil t))))))
8889 "Insert group or group template declaration."
8893 "group" "(d)eclaration or (t)emplate declaration?" t) ?t)
8904 (vhdl-template-field "constituent list" ");")
8914 (vhdl-template-field "entity class list" ");")
8918 "Insert a sequential if statement or an if-generate statement."
8923 (eq (vhdl-decision-query "if" "(g)enerate or (u)se?" t) ?u))
8949 (if (or (not (eq vhdl-optional-labels 'all)) (vhdl-standard-p '87))
9019 (let ((char (vhdl-decision-query nil "(w)hile, (f)or, or (b)are?" t)))
9048 "Insert a map specification with association list."
9050 (let ((start (or start (point)))
9053 (if (not vhdl-association-list-with-formals)
9055 (concat (and optional "[") "association list" (and optional "]"))
9056 ")" (or (not secondary) optional)
9061 (if vhdl-argument-list-indent
9068 " => " (or (not secondary) optional)
9115 (or (vhdl-template-field
9159 (if (or (= (preceding-char) ?\() (not vhdl-template-invoked-by-hook))
9167 "Insert a package specification or body."
9174 (eq (vhdl-decision-query nil "(d)eclaration or (b)ody?") ?b)))
9181 (when (or name
9193 (insert (or name "") ";")
9207 "Insert a port declaration, or port map in instantiation statements."
9215 (vhdl-template-port-list nil))
9216 ((or (save-excursion
9217 (or (beginning-of-line)
9222 (t (vhdl-template-port-list nil))))))
9246 "Insert a procedure declaration or body."
9253 (vhdl-template-argument-list)
9255 (eq (vhdl-decision-query nil "(d)eclaration or (b)ody?") ?b))
9286 "process" "(c)ombinational or (s)equential?" t) ?s)))
9299 (vhdl-template-field "[sensitivity list]" ")" t))
9302 (setq clock (or (and (not (equal "" vhdl-clock-name))
9307 (setq reset (or (and (not (equal "" vhdl-reset-name))
9359 (if (vhdl-in-argument-list-p)
9369 "quantity" "(f)ree, (b)ranch, or (s)ource quantity?" t)))
9413 (if (eq (vhdl-decision-query nil "(s)pectrum or (n)oise?") ?n)
9430 (when (or (vhdl-template-field "element names"
9433 (while (or first (vhdl-template-field "[element names]" nil t))
9510 (in-arglist (vhdl-in-argument-list-p)))
9552 (if (eq (vhdl-decision-query nil "(p)rocedure or (f)unction?" t) ?f)
9559 (if (eq (vhdl-decision-query nil "(p)rocedure or (f)unction?" t) ?f)
9598 (or (vhdl-template-field
9643 (in-arglist (vhdl-in-argument-list-p)))
9645 (if (or (save-excursion
9672 "[ON sensitivity list] [UNTIL condition] [FOR time expression]"
9737 (or (and (not (equal "" vhdl-clock-name))
9778 (setq reset (or (and (not (equal "" vhdl-reset-name))
9806 (unless (or (save-excursion
9916 (vhdl-insert-string-or-file vhdl-file-header)
9929 (vhdl-insert-string-or-file vhdl-file-footer)
9937 (let ((project-title (or (nth 0 (aget vhdl-project-alist vhdl-project)) ""))
9938 (project-desc (or (nth 9 (aget vhdl-project-alist vhdl-project)) ""))
10003 (when (or (not project-title) (equal project-title ""))
10005 (when (or (not project-desc) (equal project-desc ""))
10036 (if (or (looking-at "\\s-*$") ; end of line
10037 (and (not unread-command-events) ; called with key binding or menu
10053 (insert "--") ; or have a space after it?
10059 (insert "--")) ; hardwire to 1 space or use vhdl-basic-offset?
10061 (list (vhdl-character-to-event next-input)))))) ; pushback the char
10093 (when (or (and string (or vhdl-self-insert-comments always-insert))
10099 (if (not (or (and string (progn (insert string) t))
10151 (forward-line (or arg 1))
10187 (when (or empty-lines (eq vhdl-insert-empty-lines 'all)) (insert "\n"))
10190 (when (and (or construct name) vhdl-self-insert-comments)
10195 (when (or empty-lines (eq vhdl-insert-empty-lines 'all)) (insert "\n"))
10199 (when (or empty-lines (eq vhdl-insert-empty-lines 'all)) (insert "\n"))
10206 (defun vhdl-template-argument-list (&optional is-function)
10207 "Read from user a procedure or function argument list."
10213 (unless vhdl-argument-list-indent
10243 (defun vhdl-template-generic-list (optional &optional no-value)
10244 "Read from user a generic spec argument list."
10249 (unless vhdl-argument-list-indent
10263 (unless vhdl-argument-list-indent
10293 (defun vhdl-template-port-list (optional)
10294 "Read from user a port spec argument list."
10299 (unless vhdl-argument-list-indent
10315 (unless vhdl-argument-list-indent
10322 (cond ((or (null object) (equal "SIGNAL" (upcase object)))
10387 ((or (and (>= (preceding-char) ?a) (<= (preceding-char) ?z))
10390 (or (expand-abbrev) (vhdl-fix-case-word -1)))
10407 (or (and is-string '("\"\"" . 2)) default)
10412 (when (or (not (equal string "")) optional)
10427 (when (or (not (equal string "")) (not optional))
10428 (insert (or follow-string "")))
10457 "If preceeding character is part of a word or a paren then hippie-expand,
10466 (or (and (boundp 'hippie-expand-only-buffers)
10471 ((or (= (preceding-char) ?\() (= (preceding-char) ?\)))
10482 (when (or (re-search-forward
10499 (defun vhdl-insert-string-or-file (string)
10500 "Insert STRING or file contents if STRING is an existing file name."
10514 ;; search backward for block beginning or end
10515 (while (or (while (and (setq pos (re-search-backward "^\\s-*\\(\\(end\\)\\|\\(\\(impure\\|pure\\)[ \t\n]+\\)?\\(function\\|procedure\\)\\|\\(for\\)\\|\\(architecture\\|component\\|configuration\\|entity\\|package\\|record\\|units\\)\\|\\(\\w+[ \t\n]*:[ \t\n]*\\)?\\(postponed[ \t\n]+\\)?\\(block\\|case\\|for\\|if\\|procedural\\|process\\|while\\)\\)\\>" nil t))
10517 (or (and (match-string 5)
10544 ;; search forward for block beginning or end
10545 (while (or (while (and (setq pos (re-search-forward "^\\s-*\\(\\(end\\)\\|\\(\\(impure\\|pure\\)[ \t\n]+\\)?\\(function\\|procedure\\)\\|\\(for\\)\\|\\(architecture\\|component\\|configuration\\|entity\\|package\\|record\\|units\\)\\|\\(\\w+[ \t\n]*:[ \t\n]*\\)?\\(postponed[ \t\n]+\\)?\\(block\\|case\\|for\\|if\\|procedural\\|process\\|while\\)\\)\\>" nil t))
10547 (or (and (match-string 5)
10577 (defun vhdl-in-argument-list-p ()
10578 "Check if within an argument list."
10581 (or (string-match "arglist"
10591 but not if inside a comment or quote."
10592 (if (or (vhdl-in-literal)
10618 (list (vhdl-character-to-event ?\177))))))))
10724 (defun vhdl-template-or-hook ()
10725 (vhdl-hooked-abbrev 'vhdl-template-or))
10743 ;; Template insertion from completion list
10748 (list (let ((completion-ignore-case t))
10757 (list (let ((completion-ignore-case t))
10766 (list (let ((completion-ignore-case t))
10786 (list (completing-read "Model name: " vhdl-model-alist))))
10797 (vhdl-insert-string-or-file (nth 1 model))
10829 (replace-match (or string "")))
10867 (defvar vhdl-port-list nil
10869 ;; structure: (parenthesised expression means list of such entries)
10926 "Flatten port list so that only one generic/port exists per line.
10930 (if (not vhdl-port-list)
10933 (let ((new-vhdl-port-list (list (car vhdl-port-list)))
10934 (old-vhdl-port-list (cdr vhdl-port-list))
10935 old-port-list new-port-list old-port new-port names)
10936 ;; traverse port list and flatten entries
10937 (while (cdr old-vhdl-port-list)
10938 (setq old-port-list (car old-vhdl-port-list))
10939 (setq new-port-list nil)
10940 (while old-port-list
10941 (setq old-port (car old-port-list))
10944 (setq new-port (cons (if as-alist (car names) (list (car names)))
10946 (setq new-port-list (append new-port-list (list new-port)))
10948 (setq old-port-list (cdr old-port-list)))
10949 (setq old-vhdl-port-list (cdr old-vhdl-port-list))
10950 (setq new-vhdl-port-list (append new-vhdl-port-list
10951 (list new-port-list))))
10952 (setq vhdl-port-list
10953 (append new-vhdl-port-list (list old-vhdl-port-list))
10965 (if (not vhdl-port-list)
10968 (let ((port-list (nth 2 vhdl-port-list))
10970 ;; traverse port list and reverse directions
10971 (while port-list
10972 (setq port-dir-car (cddr (car port-list))
10978 (setq port-list (cdr port-list)))
10983 "Get generic and port information from an entity or component declaration."
10986 (let (parse-error end-of-list
10987 decl-type name generic-list port-list context-clause
10993 ;; check if within entity or component declaration
10995 (when (or (not (re-search-backward
10998 (throw 'parse "ERROR: Not within an entity or component declaration"))
11009 (setq end-of-list (vhdl-parse-string ")[ \t\n]*;[ \t\n]*" t))
11010 (while (not end-of-list)
11013 (setq names (list (match-string-no-properties 1)))
11016 (append names (list (match-string-no-properties 1)))))
11058 (setq end-of-list (vhdl-parse-string ")" t))
11064 ;; save everything in list
11065 (setq generic-list (append generic-list
11066 (list (list names type init
11074 (setq end-of-list (vhdl-parse-string ")[ \t\n]*;[ \t\n]*" t))
11075 (while (not end-of-list)
11082 (setq names (list (match-string-no-properties 1)))
11084 (setq names (append names (list (match-string-no-properties 1)))))
11108 (setq end-of-list (vhdl-parse-string ")" t))
11114 ;; save everything in list
11115 (setq port-list (append port-list
11116 (list (list names object direct type
11128 ; (list (cons (vhdl-work-library)
11135 (setq vhdl-port-list (list name generic-list port-list context-clause)
11142 (clause-list (nth 3 vhdl-port-list))
11144 (while clause-list
11145 (setq clause (car clause-list))
11146 (unless (or (and exclude-pack-name (equal (downcase (cdr clause))
11154 (setq clause-list (cdr clause-list)))))
11159 (generic-list (nth 1 vhdl-port-list))
11160 list-margin start names generic)
11162 (when generic-list
11165 (unless vhdl-argument-list-indent
11167 (setq list-margin (current-column))
11168 (while generic-list
11169 (setq generic (car generic-list))
11172 (vhdl-paste-group-comment (nth 4 generic) list-margin))
11184 (unless (cdr generic-list) (insert ")"))
11189 (setq generic-list (cdr generic-list))
11190 (when generic-list (insert "\n") (indent-to list-margin)))
11197 (port-list (nth 2 vhdl-port-list))
11198 list-margin start names port)
11200 (when port-list
11203 (unless vhdl-argument-list-indent
11205 (setq list-margin (current-column))
11206 (while port-list
11207 (setq port (car port-list))
11210 (vhdl-paste-group-comment (nth 5 port) list-margin))
11224 (unless (cdr port-list) (insert ")"))
11229 (setq port-list (cdr port-list))
11230 (when port-list (insert "\n") (indent-to list-margin)))
11235 "Paste as an entity or component declaration."
11238 (name (nth 0 vhdl-port-list)))
11241 (when (or (eq kind 'entity) (not (vhdl-standard-p '87)))
11244 (when (nth 1 vhdl-port-list)
11250 (when (nth 2 vhdl-port-list)
11273 (if (not vhdl-port-list)
11275 (message "Pasting port as entity \"%s\"..." (car vhdl-port-list))
11277 (message "Pasting port as entity \"%s\"...done" (car vhdl-port-list))))
11282 (if (not vhdl-port-list)
11284 (message "Pasting port as component \"%s\"..." (car vhdl-port-list))
11286 (message "Pasting port as component \"%s\"...done" (car vhdl-port-list))))
11293 list-margin start generic
11294 (generic-list (nth 1 vhdl-port-list)))
11295 (when generic-list
11298 (if (not vhdl-association-list-with-formals)
11299 ;; paste list of actual generics
11300 (while generic-list
11302 (car (nth 0 (car generic-list)))
11303 (or (nth 2 (car generic-list)) " ")))
11304 (setq generic-list (cdr generic-list))
11305 (insert (if generic-list ", " ")"))
11306 (when (and (not generic-list) secondary
11307 (null (nth 2 vhdl-port-list)))
11309 (unless vhdl-argument-list-indent
11311 (setq list-margin (current-column))
11312 (while generic-list
11313 (setq generic (car generic-list))
11316 (vhdl-paste-group-comment (nth 4 generic) list-margin))
11321 (or (nth 2 generic) "")))
11322 (setq generic-list (cdr generic-list))
11323 (insert (if generic-list "," ")"))
11324 (when (and (not generic-list) secondary
11325 (null (nth 2 vhdl-port-list)))
11328 (when (or vhdl-include-type-comments
11335 (when generic-list (insert "\n") (indent-to list-margin)))
11343 list-margin start port
11344 (port-list (nth 2 vhdl-port-list)))
11345 (when port-list
11348 (if (not vhdl-association-list-with-formals)
11349 ;; paste list of actual ports
11350 (while port-list
11352 (car (nth 0 (car port-list)))))
11353 (setq port-list (cdr port-list))
11354 (insert (if port-list ", " ")")))
11355 (unless vhdl-argument-list-indent
11357 (setq list-margin (current-column))
11358 (while port-list
11359 (setq port (car port-list))
11362 (vhdl-paste-group-comment (nth 5 port) list-margin))
11367 (setq port-list (cdr port-list))
11368 (insert (if port-list "," ");"))
11370 (when (or vhdl-include-direction-comments
11385 (when port-list (insert "\n") (indent-to list-margin)))
11393 (if (not vhdl-port-list)
11395 (let ((orig-vhdl-port-list vhdl-port-list))
11396 ;; flatten local copy of port list (must be flat for port mapping)
11410 (nth 0 vhdl-port-list)) n))
11416 (nth 0 vhdl-port-list)))))
11425 (insert (nth 0 vhdl-port-list))
11427 (insert (vhdl-work-library) "." (nth 0 vhdl-port-list)))
11428 (when (nth 1 vhdl-port-list)
11431 (when (nth 2 vhdl-port-list)
11434 (unless (or (nth 1 vhdl-port-list) (nth 2 vhdl-port-list))
11437 (setq vhdl-port-list orig-vhdl-port-list))))
11442 (if (not vhdl-port-list)
11444 (let ((orig-vhdl-port-list vhdl-port-list))
11446 ;; flatten local copy of port list (must be flat for constant initial.)
11451 (generic-list (nth 1 vhdl-port-list)))
11452 (when generic-list
11454 (while generic-list
11455 (setq generic (car generic-list))
11473 (setq generic-list (cdr generic-list))
11474 (when generic-list (insert "\n") (indent-to margin))))
11475 ;; align signal list
11479 (setq vhdl-port-list orig-vhdl-port-list))))
11484 (if (not vhdl-port-list)
11490 (port-list (nth 2 vhdl-port-list)))
11491 (when port-list
11493 (while port-list
11494 (setq port (car port-list))
11516 (when (or vhdl-include-direction-comments
11524 (setq port-list (cdr port-list))
11525 (when port-list (insert "\n") (indent-to margin)))
11526 ;; align signal list
11533 (if (not vhdl-port-list)
11535 (let ((orig-vhdl-port-list vhdl-port-list))
11537 ;; flatten local copy of port list (must be flat for signal initial.)
11542 (port-list (nth 2 vhdl-port-list)))
11543 (when port-list
11545 (while port-list
11546 (setq port (car port-list))
11554 (setq port-list (cdr port-list))
11555 (when (and port-list
11556 (equal "IN" (upcase (nth 2 (car port-list)))))
11558 ;; align signal list
11561 (setq vhdl-port-list orig-vhdl-port-list))))
11566 (if (not vhdl-port-list)
11570 (nth 0 vhdl-port-list)))
11581 (if (y-or-n-p
11596 (nth 0 vhdl-port-list) "\""))
11619 (nth 0 vhdl-port-list))))
11630 (not (y-or-n-p (concat "File \"" arch-file-name
11640 (nth 0 vhdl-port-list) "\""))
11655 (when (nth 1 vhdl-port-list)
11666 (vhdl-insert-string-or-file vhdl-testbench-declarations))
11690 (vhdl-replace-string vhdl-testbench-dut-name (nth 0 vhdl-port-list)) t)
11695 (vhdl-insert-string-or-file vhdl-testbench-statements))
11715 (defvar vhdl-subprog-list nil
11717 ;; structure: (parenthesised expression means list of such entries)
11726 "Flatten interface list so that only one parameter exists per line."
11728 (if (not vhdl-subprog-list)
11731 (let ((old-subprog-list (nth 2 vhdl-subprog-list))
11732 new-subprog-list old-subprog new-subprog names)
11733 ;; traverse parameter list and flatten entries
11734 (while old-subprog-list
11735 (setq old-subprog (car old-subprog-list))
11738 (setq new-subprog (cons (list (car names)) (cdr old-subprog)))
11739 (setq new-subprog-list (append new-subprog-list (list new-subprog)))
11741 (setq old-subprog-list (cdr old-subprog-list)))
11742 (setq vhdl-subprog-list
11743 (list (nth 0 vhdl-subprog-list) (nth 1 vhdl-subprog-list)
11744 new-subprog-list (nth 3 vhdl-subprog-list)
11745 (nth 4 vhdl-subprog-list) (nth 5 vhdl-subprog-list))
11753 (let (parse-error pos end-of-list
11754 name kind param-list object names direct type init
11773 (setq end-of-list (not (match-string 7)))
11775 ;; parse parameter list
11777 (setq end-of-list (or end-of-list
11779 (while (not end-of-list)
11786 (setq names (list (match-string-no-properties 1)))
11788 (setq names (append names (list (match-string-no-properties 1)))))
11835 (setq end-of-list (vhdl-parse-string ")\\s-*" t))
11861 ;; save everything in list
11862 (setq param-list (append param-list
11863 (list (list names object direct type init
11872 (setq vhdl-subprog-list
11873 (list name kind param-list return-type return-comment
11881 (param-list (nth 2 vhdl-subprog-list))
11882 list-margin start names param)
11885 (if (eq (nth 1 vhdl-subprog-list) 'procedure) "PROCEDURE " "FUNCTION "))
11886 (insert (nth 0 vhdl-subprog-list))
11887 (if (not param-list)
11890 ;; paste parameter list
11892 (unless vhdl-argument-list-indent
11894 (setq list-margin (current-column))
11895 (while param-list
11896 (setq param (car param-list))
11898 (when (memq vhdl-include-group-comments (list kind 'always))
11899 (vhdl-paste-group-comment (nth 6 param) list-margin))
11916 (if (cdr param-list)
11919 (when (null (nth 3 vhdl-subprog-list))
11924 (setq param-list (cdr param-list))
11925 (when param-list (insert "\n") (indent-to list-margin)))
11926 (when (nth 3 vhdl-subprog-list)
11927 (insert "\n") (indent-to list-margin)
11929 (when (memq vhdl-include-group-comments (list kind 'always))
11930 (vhdl-paste-group-comment (nth 5 vhdl-subprog-list) list-margin))
11932 (insert "return " (nth 3 vhdl-subprog-list))
11934 (when (and vhdl-include-port-comments (nth 4 vhdl-subprog-list))
11935 (vhdl-comment-insert-inline (nth 4 vhdl-subprog-list) t)))
11936 ;; align parameter list
11943 (if (eq (nth 1 vhdl-subprog-list) 'procedure) "PROCEDURE" "FUNCTION"))
11944 (nth 0 vhdl-subprog-list) margin))))
11949 (if (not vhdl-subprog-list)
11952 (car vhdl-subprog-list))
11956 (car vhdl-subprog-list))))
11961 (if (not vhdl-subprog-list)
11964 (car vhdl-subprog-list))
11968 (car vhdl-subprog-list))))
11973 (if (not vhdl-subprog-list)
11975 (let ((orig-vhdl-subprog-list vhdl-subprog-list)
11976 param-list margin list-margin param start)
11977 ;; flatten local copy of interface list (must be flat for parameter mapping)
11979 (setq param-list (nth 2 vhdl-subprog-list))
11983 (car vhdl-subprog-list))
11985 (insert (nth 0 vhdl-subprog-list))
11986 (if (not param-list)
11989 ;; paste parameter list
11991 (unless vhdl-argument-list-indent
11993 (setq list-margin (current-column))
11994 (while param-list
11995 (setq param (car param-list))
11998 (vhdl-paste-group-comment (nth 6 param) list-margin))
12001 (setq param-list (cdr param-list))
12002 (insert (if param-list "," ");"))
12006 (when param-list (insert "\n") (indent-to list-margin)))
12007 ;; align parameter list
12011 (car vhdl-subprog-list))
12012 (setq vhdl-subprog-list orig-vhdl-subprog-list))))
12025 "Try expanding abbreviations from `vhdl-abbrev-list'."
12028 (setq he-expand-list
12029 (let ((abbrev-list vhdl-abbrev-list)
12030 (sel-abbrev-list '()))
12031 (while abbrev-list
12032 (when (or (not (stringp (car abbrev-list)))
12034 (concat "^" he-search-string) (car abbrev-list)))
12035 (setq sel-abbrev-list
12036 (cons (car abbrev-list) sel-abbrev-list)))
12037 (setq abbrev-list (cdr abbrev-list)))
12038 (nreverse sel-abbrev-list))))
12039 (while (and he-expand-list
12040 (or (not (stringp (car he-expand-list)))
12041 (he-string-member (car he-expand-list) he-tried-table t)))
12042 ; (equal (car he-expand-list) he-search-string)))
12043 (unless (stringp (car he-expand-list))
12044 (setq vhdl-expand-upper-case (car he-expand-list)))
12045 (setq he-expand-list (cdr he-expand-list)))
12046 (if (null he-expand-list)
12051 (upcase (car he-expand-list))
12052 (car he-expand-list))
12054 (setq he-expand-list (cdr he-expand-list))
12057 (defun vhdl-he-list-beg ()
12062 (progn (backward-up-list 1)
12067 ;; override `he-list-beg' from `hippie-exp'
12069 (defalias 'he-list-beg 'vhdl-he-list-beg))
12081 '(try-expand-list
12082 try-expand-list-all-buffers)))
12088 "Convert all words matching WORD-REGEXP in region to lower or upper case,
12098 (or (vhdl-in-literal)
12112 "Convert all VHDL words in region to lower or upper case, depending on
12126 "Convert all VHDL words in buffer to lower or upper case, depending on
12165 (kill-line (or arg 1)))
12178 (forward-line (or arg 1))
12191 (hippie-expand-try-functions-list
12199 (transpose-lines (or arg 1))
12206 (transpose-lines (- 0 (or arg 0)))
12232 (or (looking-at "^\\s-*\\(--.*\\)?$")
12248 (or (looking-at "^\\s-*\\(--.*\\)?$")
12318 (list (let ((completion-ignore-case t))
12337 "Set current project to NAME or unset if NAME is current project."
12347 ? ?_ (or (vhdl-project-p)
12350 (list (read-file-name
12384 (list (read-file-name
12411 (list (cons new-name project-entry))))
12416 (let ((file-name-list vhdl-project-file-name)
12417 file-list list-length)
12418 (while file-name-list
12419 (setq file-list
12420 (append file-list
12424 (cons "\\(.*\\) \\(.*\\)" (car file-name-list))
12426 (setq list-length (or list-length (length file-list)))
12427 (setq file-name-list (cdr file-name-list)))
12428 (while file-list
12429 (vhdl-import-project (expand-file-name (car file-list)) t
12430 (not (> list-length 0)))
12431 (setq list-length (1- list-length))
12432 (setq file-list (cdr file-list)))))
12542 (cons (list 'vhdl-mode vhdl-hs-start-regexp nil "--\\( \\|$\\)"
12582 (let ((start (or (vhdl-within-translate-off)
12586 (let ((end (or (vhdl-end-translate-off limit) limit)))
12587 (set-match-data (list start end))
12627 (list
12629 (list
12635 5 'font-lock-function-name-face)
12638 (list
12640 2 'font-lock-function-name-face)
12643 (list
12651 1 'font-lock-function-name-face)
12654 (list
12658 '(1 font-lock-function-name-face) '(2 font-lock-function-name-face))
12661 (list
12666 '(1 font-lock-function-name-face) '(3 font-lock-function-name-face)
12667 '(5 font-lock-function-name-face nil t)
12668 '(7 font-lock-function-name-face nil t))
12671 (list
12680 5 'font-lock-function-name-face)
12683 (list
12686 3 'font-lock-function-name-face)
12689 (list
12692 1 'font-lock-function-name-face)
12695 (list
12699 '(1 font-lock-function-name-face) '(4 font-lock-function-name-face nil t))
12702 (list "^\\s-*library\\>"
12703 '(vhdl-font-lock-match-item nil nil (1 font-lock-function-name-face)))
12706 (list
12710 '(3 font-lock-function-name-face) '(5 font-lock-function-name-face nil t)
12711 '(7 font-lock-function-name-face nil t))
12714 (list
12717 1 'vhdl-font-lock-attribute-face)
12720 (list
12723 3 'font-lock-type-face)
12726 (list "\\(:[^=]\\)"
12738 (goto-char (match-end 1)) (1 font-lock-variable-name-face)))
12742 (list "\\(=>\\)"
12751 (goto-char (match-end 1)) (1 font-lock-variable-name-face)))
12755 (list "\\<\\(alias\\|for\\|group\\|quantity\\)\\s-+\\w+\\s-+\\(across\\|in\\|is\\)\\>"
12758 nil (1 font-lock-variable-name-face)))
12775 '((vhdl-match-translate-off (0 vhdl-font-lock-translate-off-face append)))
12782 (defvar vhdl-font-lock-prompt-face 'vhdl-font-lock-prompt-face
12785 (defvar vhdl-font-lock-attribute-face 'vhdl-font-lock-attribute-face
12788 (defvar vhdl-font-lock-enumvalue-face 'vhdl-font-lock-enumvalue-face
12791 (defvar vhdl-font-lock-function-face 'vhdl-font-lock-function-face
12794 (defvar vhdl-font-lock-directive-face 'vhdl-font-lock-directive-face
12797 (defvar vhdl-font-lock-reserved-words-face 'vhdl-font-lock-reserved-words-face
12800 (defvar vhdl-font-lock-translate-off-face 'vhdl-font-lock-translate-off-face
12803 ;; face names to use for words with special syntax.
12808 "vhdl-font-lock" (nth 0 (car syntax-alist)) "face"))
12820 'vhdl-highlight-faces 'font-lock-comment-face 'custom-face)
12822 'vhdl-highlight-faces 'font-lock-string-face 'custom-face)
12824 'vhdl-highlight-faces 'font-lock-keyword-face 'custom-face)
12826 'vhdl-highlight-faces 'font-lock-type-face 'custom-face)
12828 'vhdl-highlight-faces 'font-lock-function-name-face 'custom-face)
12830 'vhdl-highlight-faces 'font-lock-variable-name-face 'custom-face)
12832 (defface vhdl-font-lock-prompt-face
12838 "Font lock mode face used to highlight prompts."
12841 (defface vhdl-font-lock-attribute-face
12845 "Font lock mode face used to highlight standardized attributes."
12848 (defface vhdl-font-lock-enumvalue-face
12852 "Font lock mode face used to highlight standardized enumeration values."
12855 (defface vhdl-font-lock-function-face
12859 "Font lock mode face used to highlight standardized functions and packages."
12862 (defface vhdl-font-lock-directive-face
12866 "Font lock mode face used to highlight directives."
12869 (defface vhdl-font-lock-reserved-words-face
12875 "Font lock mode face used to highlight additional reserved words."
12878 (defface vhdl-font-lock-translate-off-face
12882 "Font lock mode face used to background highlight translate-off regions."
12889 "vhdl-font-lock" (caar syntax-alist) "face")
12895 ,(concat "Font lock mode face used to highlight "
12907 (list (list (concat "\\(^\\|[ \t(.']\\)\\(<"
12909 2 'vhdl-font-lock-prompt-face t)
12910 (list (concat "--\\s-*"
12912 2 'vhdl-font-lock-directive-face t)
12914 (list "^#[ \t]*\\(\\w+\\)\\([ \t]+\\(\\w+\\)\\)?"
12915 '(1 font-lock-builtin-face)
12916 '(3 font-lock-variable-name-face nil t))))
12920 (list
12921 (list (concat "'" vhdl-attributes-regexp)
12922 1 'vhdl-font-lock-attribute-face)
12923 (list vhdl-types-regexp 1 'font-lock-type-face)
12924 (list vhdl-functions-regexp 1 'vhdl-font-lock-function-face)
12925 (list vhdl-packages-regexp 1 'vhdl-font-lock-function-face)
12926 (list vhdl-enum-values-regexp 1 'vhdl-font-lock-enumvalue-face)
12927 (list vhdl-keywords-regexp 1 'font-lock-keyword-face)))
12937 "vhdl-font-lock" (nth 0 (car syntax-alist)) "face"))
12943 (list (list vhdl-reserved-words-regexp 1
12944 'vhdl-font-lock-reserved-words-face)))
12950 (when (or vhdl-highlight-forbidden-words
12963 (list
12977 "Initialize custom face and page settings for postscript printing."
12978 ;; define custom face settings
12979 (unless (or (not vhdl-print-customize-faces)
12982 '(font-lock-keyword-face
12983 font-lock-type-face
12984 vhdl-font-lock-attribute-face
12985 vhdl-font-lock-enumvalue-face
12986 vhdl-font-lock-directive-face))
12988 '(font-lock-comment-face
12989 font-lock-function-name-face
12990 font-lock-type-face
12991 vhdl-font-lock-attribute-face
12992 vhdl-font-lock-enumvalue-face
12993 vhdl-font-lock-directive-face))
12995 '(font-lock-string-face))
12996 (setq ps-always-build-face-reference t))
13032 ;; structure: (parenthesised expression means list of such entries)
13043 ;; structure: (parenthesised expression means list of such entries)
13052 ;; structure: (parenthesised expression means list of such entries)
13064 ;; structure: (parenthesised expression means list of such entries)
13069 ;; structure: (parenthesised expression means list of such entries)
13071 ;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list)
13072 ;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list))
13076 ;; structure: (parenthesised expression means list of such entries)
13083 (defvar vhdl-speedbar-shown-project-list nil
13086 (defvar vhdl-updated-project-list nil
13089 (defvar vhdl-modified-file-list nil
13135 "Scan contents of VHDL files in directory or file pattern NAME."
13142 (file-list
13144 (list name)
13149 (key (or project dir-name))
13151 (or (nth 3 (aget vhdl-project-alist project)) ""))
13155 ent-alist conf-alist pack-alist ent-inst-list file-alist
13156 tmp-list tmp-entry no-files files-exist big-files)
13157 (when (or project update)
13161 ent-inst-list (car (aget vhdl-ent-inst-alist key t))
13163 (when (and (not is-directory) (null file-list))
13165 (setq files-exist file-list)
13166 (when file-list
13167 (setq no-files (length file-list))
13169 (if is-directory "directory" "files") (or num-string "") name)
13173 file-tmp-list)
13174 (while file-list
13175 (unless (string-match file-exclude-regexp (car file-list))
13176 (setq file-tmp-list (cons (car file-list) file-tmp-list)))
13177 (setq file-list (cdr file-list)))
13178 (setq file-list (nreverse file-tmp-list))))
13180 (while file-list
13184 (or num-string "") name
13185 (/ (* 100 (- no-files (length file-list))) no-files) "%"))
13186 (let ((file-name (abbreviate-file-name (car file-list)))
13187 ent-list arch-list arch-ent-list conf-list
13188 pack-list pack-body-list inst-list inst-ent-list)
13211 (setq ent-list (cons ent-key ent-list))
13213 (list ent-name file-name (vhdl-current-line)
13232 (setq arch-list (cons arch-key arch-list)
13233 arch-ent-list (cons ent-key arch-ent-list))
13235 (list arch-name file-name (vhdl-current-line) nil
13238 (list (or (nth 0 ent-entry) ent-name)
13253 arch-key comp-conf-list inst-key-list
13263 (setq conf-list (cons conf-key conf-list))
13267 inst-key-list (split-string
13280 (while inst-key-list
13281 (setq comp-conf-list
13282 (cons (list (car inst-key-list)
13286 comp-conf-list))
13287 (setq inst-key-list (cdr inst-key-list)))))
13289 (list conf-name file-name conf-line ent-key
13290 arch-key comp-conf-list lib-alist)))))
13315 (cons (list (downcase comp-name) comp-name
13320 (cons (list (downcase func-name) func-name
13326 (setq pack-body-list (cons pack-key pack-body-list))
13327 (setq pack-list (cons pack-key pack-list)))
13331 (list (or (nth 0 pack-entry) pack-name)
13336 (list pack-name file-name pack-line
13367 (or (not limit-hier-inst-no)
13383 (or (match-string-no-properties 3)
13386 (or (and (match-string 8)
13396 (setq inst-list (cons inst-key inst-list)
13397 inst-ent-list
13398 (cons inst-ent-key inst-ent-list))
13402 (list (list inst-key inst-name file-name
13421 (inst-key-list
13427 (when (and (or (equal "all" (car inst-key-list))
13429 inst-key-list))
13432 (or (nth 4 (car tmp-inst-alist)) ""))
13435 (setq inst-ent-list
13436 (cons (or inst-ent-key (nth 5 inst-entry))
13438 (nth 5 inst-entry) inst-ent-list)))
13440 (list (nth 0 inst-entry) (nth 1 inst-entry)
13443 (or inst-ent-key (nth 5 inst-entry))
13444 (or inst-arch-key (nth 6 inst-entry))
13450 (list (nth 0 arch-entry) (nth 1 arch-entry)
13454 (list (nth 0 ent-entry) (nth 1 ent-entry)
13464 (list ent-list arch-list arch-ent-list conf-list
13465 pack-list pack-body-list inst-list inst-ent-list))
13466 (setq ent-inst-list (append inst-ent-list ent-inst-list))))))
13467 (setq file-list (cdr file-list))))
13468 (when (or (and (not project) files-exist)
13472 (setq tmp-list ent-alist)
13473 (while tmp-list
13474 (when (null (nth 2 (car tmp-list)))
13475 (setq tmp-entry (car (nth 4 (car tmp-list))))
13478 (nth 1 tmp-entry) (nth 1 (car tmp-list)) (nth 2 tmp-entry)
13480 (setq tmp-list (cdr tmp-list)))
13482 (setq tmp-list conf-alist)
13483 (while tmp-list
13484 (if (setq tmp-entry (aget ent-alist (nth 4 (car tmp-list)) t))
13485 (unless (aget (nth 3 tmp-entry) (nth 5 (car tmp-list)) t)
13486 (setq tmp-entry (car tmp-list))
13491 (setq tmp-entry (car tmp-list))
13496 (setq tmp-list (cdr tmp-list)))
13498 (setq tmp-list pack-alist)
13499 (while tmp-list
13500 (when (null (nth 2 (car tmp-list)))
13501 (setq tmp-entry (car tmp-list))
13505 (setq tmp-list (cdr tmp-list)))
13511 (add-to-list 'vhdl-updated-project-list (or project dir-name)))
13523 (aput 'vhdl-ent-inst-alist key (list ent-inst-list))
13527 (if is-directory "directory" "files") (or num-string "") name)
13532 (when (or (not project) (not non-final))
13540 (let ((dir-list (or (nth 2 (aget vhdl-project-alist project)) '("")))
13544 (or (nth 3 (aget vhdl-project-alist project)) ""))
13545 dir-list-tmp dir dir-name num-dir act-dir recursive)
13554 (while dir-list
13555 (setq dir (vhdl-resolve-env-variable (car dir-list)))
13559 (setq dir-list-tmp
13563 dir-list-tmp))
13564 (setq dir-list (cdr dir-list)))
13566 (setq dir-list-tmp (vhdl-resolve-paths dir-list-tmp))
13568 (while dir-list-tmp
13569 (setq dir (car dir-list-tmp))
13572 (setq dir-list (append dir-list (vhdl-get-subdirs
13574 (setq dir-list (append dir-list (list dir))))
13575 (setq dir-list-tmp (cdr dir-list-tmp)))
13579 (while dir-list
13580 (unless (string-match file-exclude-regexp (car dir-list))
13581 (setq dir-list-tmp (cons (car dir-list) dir-list-tmp)))
13582 (setq dir-list (cdr dir-list)))
13583 (setq dir-list (nreverse dir-list-tmp))))
13586 (setq dir-list-tmp nil
13587 num-dir (length dir-list)
13589 (while dir-list
13591 (expand-file-name (car dir-list))))
13594 (cdr dir-list))
13595 (add-to-list 'dir-list-tmp (file-name-directory dir-name))
13596 (setq dir-list (cdr dir-list)
13598 (aput 'vhdl-directory-alist project (list (nreverse dir-list-tmp)))
13611 (ent-alist (aget vhdl-entity-alist (or project dir-name) t))
13612 (conf-alist (aget vhdl-config-alist (or project dir-name) t))
13613 (pack-alist (aget vhdl-package-alist (or project dir-name) t))
13614 (ent-inst-list (car (aget vhdl-ent-inst-alist
13615 (or project dir-name) t)))
13616 (file-alist (aget vhdl-file-alist (or project dir-name) t))
13618 (ent-list (nth 0 file-entry))
13619 (arch-list (nth 1 file-entry))
13620 (arch-ent-list (nth 2 file-entry))
13621 (conf-list (nth 3 file-entry))
13622 (pack-list (nth 4 file-entry))
13623 (pack-body-list (nth 5 file-entry))
13624 (inst-ent-list (nth 7 file-entry))
13625 (cache-key (or project dir-name))
13629 (while ent-list
13630 (setq key (car ent-list)
13635 (list (nth 0 entry) nil nil (nth 3 entry) nil))
13637 (setq ent-list (cdr ent-list)))
13639 (while arch-list
13640 (setq key (car arch-list)
13641 ent-key (car arch-ent-list)
13646 (if (or (nth 1 entry) arch-alist)
13648 (list (nth 0 entry) (nth 1 entry) (nth 2 entry)
13651 (setq arch-list (cdr arch-list)
13652 arch-ent-list (cdr arch-ent-list)))
13654 (while conf-list
13655 (setq key (car conf-list))
13658 (setq conf-list (cdr conf-list)))
13660 (while pack-list
13661 (setq key (car pack-list)
13666 (list (nth 0 entry) nil nil nil nil nil
13670 (setq pack-list (cdr pack-list)))
13672 (while pack-body-list
13673 (setq key (car pack-body-list)
13678 (list (nth 0 entry) (nth 1 entry) (nth 2 entry)
13682 (setq pack-body-list (cdr pack-body-list)))
13684 (while inst-ent-list
13685 (setq ent-inst-list
13686 (vhdl-delete (car inst-ent-list) ent-inst-list))
13687 (setq inst-ent-list (cdr inst-ent-list)))
13692 (vhdl-aput 'vhdl-ent-inst-alist cache-key (list ent-inst-list))
13695 (when (or (and vhdl-speedbar-show-projects project)
13704 (let ((file-list (reverse vhdl-modified-file-list))
13706 (when (and vhdl-speedbar-update-on-saving file-list)
13707 (while file-list
13709 (or (vhdl-update-file-contents (car file-list))
13711 (setq file-list (cdr file-list)))
13712 (setq vhdl-modified-file-list nil)
13716 ;; structure (parenthesised expression means list of such entries)
13730 hier-list subcomp-list tmp-list inst-key inst-comp-name
13738 ; (unless (or (null conf-inst-alist) (assoc arch-key (nth 3 ent-entry)))
13746 ;; search entry in configuration's instantiations list
13747 (setq tmp-list conf-inst-alist)
13748 (while (and tmp-list
13749 (not (and (member (nth 0 (car tmp-list))
13750 (list "all" inst-key))
13751 (equal (nth 1 (car tmp-list))
13752 (downcase (or inst-comp-name ""))))))
13753 (setq tmp-list (cdr tmp-list)))
13754 (setq inst-conf-key (or (nth 4 (car tmp-list)) inst-conf-key))
13760 (or (nth 2 (car tmp-list)) ; from configuration
13768 (or (nth 3 (car tmp-list)) ; from configuration
13778 (or (nth 5 (car tmp-list)) ; from configuration
13782 (list (nth 1 inst-entry)
13784 (or (nth 0 inst-ent-entry) (nth 4 inst-entry))
13786 (or (nth 0 inst-arch-entry) inst-arch-key)
13788 (or (nth 0 inst-conf-entry) inst-conf-key)
13792 (setq subcomp-list (vhdl-get-hierarchy
13797 ;; add to list
13798 (setq hier-list (append hier-list (list comp-entry) subcomp-list))
13801 (setq hier-list
13802 (cons (list nil nil (nth 0 ent-entry)
13808 hier-list)))
13809 (when (or (= level 0) (and include-top (= level 1))) (message ""))
13810 hier-list))
13815 arch-alist inst-alist ent-inst-list
13826 (setq ent-inst-list
13827 (cons (list (nth 1 inst-entry)
13833 ent-inst-list)))
13837 (nreverse ent-inst-list)))
13849 (let ((project-list vhdl-updated-project-list))
13852 (while project-list
13853 (vhdl-save-cache (car project-list))
13854 (setq project-list (cdr project-list)))
13870 (subst-char-in-string ? ?_ (or project "dir"))
13873 (cache-key (or project directory))
13896 (prin1 (or project directory) (current-buffer))
13925 (setq vhdl-updated-project-list
13926 (delete cache-key vhdl-updated-project-list))
13940 (subst-char-in-string ? ?_ (or (vhdl-project-p) "dir"))
13959 "Make sure that hierarchy information is available. Load cache or scan files
13962 (unless (or (assoc vhdl-project vhdl-file-alist)
13966 (unless (or (assoc directory vhdl-file-alist)
13990 (when (boundp 'speedbar-mode-functions-list)
13992 (speedbar-add-mode-functions-list
13996 (speedbar-add-mode-functions-list
14023 (speedbar-change-initial-expansion-list "vhdl directory")))
14026 (speedbar-change-initial-expansion-list "vhdl project")))
14037 ,(let ((key 0) (menu-list '("Hierarchy Depth")))
14039 (setq menu-list
14045 menu-list))
14047 (nreverse menu-list))
14050 (or (vhdl-speedbar-check-unit 'entity)
14068 ["Save Caches" vhdl-save-caches vhdl-updated-project-list])))
14070 (speedbar-add-expansion-list
14073 (speedbar-add-expansion-list
14076 (setq speedbar-stealthy-function-list
14082 ; (speedbar-extension-list-to-regex
14085 speedbar-stealthy-function-list))
14087 (setq speedbar-initial-expansion-list-name "vhdl directory"))
14089 (setq speedbar-initial-expansion-list-name "vhdl project"))
14096 (error "WARNING: Speedbar is not available or not installed")
14110 (list 'let '((inhibit-read-only t))
14118 (speedbar-extension-list-to-regex speedbar-ignored-directory-expressions))
14160 'vhdl-toggle-project (caar project-alist) 'speedbar-directory-face 0)
14165 (when (member (caar project-alist) vhdl-speedbar-shown-project-list)
14179 (when (or rescan (and (not (assoc project vhdl-file-alist))
14197 (when (or rescan (and (not (assoc directory vhdl-file-alist))
14208 (aput 'vhdl-directory-alist directory (list (list directory))))
14211 ent-inst-list depth)
14213 (if (not (or ent-alist conf-alist pack-alist))
14224 'vhdl-speedbar-entity-face depth)
14227 (unless (member (nth 0 ent-entry) ent-inst-list)
14238 'vhdl-speedbar-configuration-face depth)
14252 "Rescan hierarchy for the directory or project under the cursor."
14275 ;; (nicked from `speedbar-default-directory-list')
14279 (list (expand-file-name default-directory)))
14294 vhdl-updated-project-list)
14324 (when (or (save-excursion
14340 (progn (setq vhdl-speedbar-shown-project-list nil)
14346 (add-to-list 'vhdl-updated-project-list key)))))
14356 (add-to-list 'vhdl-speedbar-shown-project-list key)
14363 (setq unit-alist (cons (list (caar ent-alist) subunit-alist) unit-alist))
14366 (setq unit-alist (cons (list (caar conf-alist)) unit-alist))
14369 (setq unit-alist (cons (list (caar pack-alist)) unit-alist))
14374 (add-to-list 'vhdl-updated-project-list key))))
14381 (unless (member token vhdl-speedbar-shown-project-list)
14382 (setq vhdl-speedbar-shown-project-list
14383 (cons token vhdl-speedbar-shown-project-list)))
14391 (setq vhdl-speedbar-shown-project-list
14392 (delete token vhdl-speedbar-shown-project-list))
14410 (if (not (or arch-alist inst-alist subpack-alist))
14430 'vhdl-speedbar-architecture-face (1+ indent))
14449 (add-to-list 'vhdl-updated-project-list key))
14462 (add-to-list 'vhdl-updated-project-list key))))
14481 (if (not (or hier-alist subpack-alist))
14487 (aput 'unit-alist (car token) (list (cons (cdr token) arch-alist)))
14498 (when (or (= vhdl-speedbar-hierarchy-depth 0)
14509 (add-to-list 'vhdl-updated-project-list key))
14517 (aput 'unit-alist (car token) (list (delete (cdr token) arch-alist)))
14521 (add-to-list 'vhdl-updated-project-list key))))
14540 (if (not (or hier-alist subpack-alist))
14555 (when (or (= vhdl-speedbar-hierarchy-depth 0)
14566 (add-to-list 'vhdl-updated-project-list key))
14579 (add-to-list 'vhdl-updated-project-list key))))
14596 (if (not (or comp-alist func-alist subpack-alist))
14616 'vhdl-speedbar-entity-face (1+ indent))
14635 (add-to-list 'vhdl-updated-project-list key))
14648 (add-to-list 'vhdl-updated-project-list key))))
14665 (or (nth 0 pack-entry) pack-key) lib-name
14692 (put-text-property (match-beginning 1) (match-end 1) 'face
14694 'speedbar-selected-face
14695 'speedbar-directory-face))
14708 (project-list vhdl-speedbar-shown-project-list)
14714 (setq file-name (abbreviate-file-name (or (buffer-file-name) "")))
14716 (or always (not (equal file-name speedbar-last-selected-file))))
14718 (while project-list
14720 (car project-list) t)))
14721 (setq project-list (cdr project-list)))
14733 speedbar-last-selected-file 'vhdl-speedbar-entity-face)
14736 speedbar-last-selected-file 'vhdl-speedbar-architecture-face)
14739 speedbar-last-selected-file 'vhdl-speedbar-configuration-face)
14742 speedbar-last-selected-file 'vhdl-speedbar-package-face)
14745 speedbar-last-selected-file 'vhdl-speedbar-package-face)
14748 speedbar-last-selected-file 'vhdl-speedbar-instantiation-face))
14754 file-name 'vhdl-speedbar-entity-selected-face pos)
14757 file-name 'vhdl-speedbar-architecture-selected-face pos)
14760 file-name 'vhdl-speedbar-configuration-selected-face pos)
14763 file-name 'vhdl-speedbar-package-selected-face pos)
14766 file-name 'vhdl-speedbar-package-selected-face pos)
14769 file-name 'vhdl-speedbar-instantiation-selected-face pos))))))
14779 (defun vhdl-speedbar-update-units (text unit-list file-name face
14782 (while unit-list
14785 (concat text "\\(" (car unit-list) "\\)\\>") nil t)
14788 (setq pos (or pos (point-marker)))
14789 (put-text-property (match-beginning 1) (match-end 1) 'face face)))
14790 (setq unit-list (cdr unit-list)))
14820 start (point) 'vhdl-speedbar-instantiation-face 'speedbar-highlight-face
14827 start (point) 'vhdl-speedbar-entity-face 'speedbar-highlight-face
14834 start (point) 'vhdl-speedbar-architecture-face 'speedbar-highlight-face
14842 start (point) 'vhdl-speedbar-configuration-face 'speedbar-highlight-face
14848 (put-text-property (+ 2 start) (1- (point)) 'face
14849 'vhdl-speedbar-library-face))
14866 start (point) 'speedbar-button-face 'speedbar-highlight-face
14873 start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
14882 start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
14906 start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
14913 start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
14918 (put-text-property (+ 2 start) (1- (point)) 'face
14919 'vhdl-speedbar-library-face)
14942 start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face
14949 start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face
14963 (insert-char ? (* (or depth 0) speedbar-indentation-width))
14976 'speedbar-directory-face level)
15033 (let ((face (get-text-property (point) 'face)))
15037 (cond ((or (eq face 'vhdl-speedbar-entity-face)
15038 (eq face 'vhdl-speedbar-entity-selected-face))
15040 ((or (eq face 'vhdl-speedbar-architecture-face)
15041 (eq face 'vhdl-speedbar-architecture-selected-face))
15043 ((or (eq face 'vhdl-speedbar-configuration-face)
15044 (eq face 'vhdl-speedbar-configuration-selected-face))
15046 ((or (eq face 'vhdl-speedbar-package-face)
15047 (eq face 'vhdl-speedbar-package-selected-face))
15049 ((or (eq face 'vhdl-speedbar-instantiation-face)
15050 (eq face 'vhdl-speedbar-instantiation-selected-face))
15052 ((eq face 'vhdl-speedbar-subprogram-face)
15061 (or (car (get-text-property (point) 'speedbar-token))
15103 "Add file to `vhdl-modified-file-list'."
15105 (add-to-list 'vhdl-modified-file-list (buffer-file-name)))
15108 (defun vhdl-resolve-paths (path-list)
15110 (let (path-list-1 path-list-2 path-beg path-end dir)
15112 (while path-list
15113 (setq dir (car path-list))
15116 (setq path-list-1 (cons dir path-list-1))
15118 (setq path-list (cdr path-list)))
15120 (while path-list-1
15121 (setq dir (car path-list-1))
15126 (setq path-list-1
15131 (let ((all-list (vhdl-directory-files
15135 dir-list)
15136 (while all-list
15137 (when (file-directory-p (car all-list))
15138 (setq dir-list (cons (car all-list) dir-list)))
15139 (setq all-list (cdr all-list)))
15140 dir-list))
15141 (cdr path-list-1))))
15144 (setq path-list-2 (cons dir path-list-2)))
15145 (setq path-list-1 (cdr path-list-1))))
15146 (nreverse path-list-2)))
15162 Jump to the design unit if `vhdl-speedbar-jump-to-unit' is t or if the file
15168 (when (or vhdl-speedbar-jump-to-unit buffer)
15176 "Copy the port of the entity/component or subprogram under the cursor."
15179 (if (not (or is-entity (vhdl-speedbar-check-unit 'subprogram)))
15180 (error "ERROR: No entity/component or subprogram under cursor")
15194 (error "ERROR: No entity/component or subprogram on current line")))))
15228 (or (vhdl-project-p) default-directory) t))
15234 "Make (compile) design unit or directory/project under the cursor."
15238 (error "ERROR: No primary design unit or directory/project under cursor")
15243 (or (speedbar-line-file) (speedbar-line-directory)))))
15255 (or (speedbar-line-file) (speedbar-line-directory)))))
15259 "Check whether design unit under cursor corresponds to DESIGN-UNIT (or its
15264 (memq (get-text-property (match-end 0) 'face)
15265 '(vhdl-speedbar-entity-face
15266 vhdl-speedbar-entity-selected-face)))
15268 (memq (get-text-property (match-end 0) 'face)
15269 '(vhdl-speedbar-architecture-face
15270 vhdl-speedbar-architecture-selected-face)))
15272 (eq (get-text-property (match-end 0) 'face)
15273 'vhdl-speedbar-subprogram-face))
15284 (defface vhdl-speedbar-entity-face
15290 (defface vhdl-speedbar-architecture-face
15298 (defface vhdl-speedbar-configuration-face
15304 (defface vhdl-speedbar-package-face
15310 (defface vhdl-speedbar-library-face
15316 (defface vhdl-speedbar-instantiation-face
15323 (defface vhdl-speedbar-subprogram-face
15329 (defface vhdl-speedbar-entity-selected-face
15335 (defface vhdl-speedbar-architecture-selected-face
15343 (defface vhdl-speedbar-configuration-selected-face
15349 (defface vhdl-speedbar-package-selected-face
15355 (defface vhdl-speedbar-instantiation-selected-face
15414 (not (y-or-n-p (concat "File \"" ent-file-name
15455 (not (y-or-n-p (concat "File \"" arch-file-name
15473 (unless (or vhdl-use-components-package (vhdl-use-direct-instantiation))
15508 (if (not vhdl-port-list)
15512 (unless (or (re-search-backward "^architecture[ \t\n]+\\w+[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t)
15520 (message "Placing component \"%s\"..." (nth 0 vhdl-port-list))
15522 (unless (or vhdl-use-components-package
15527 (car vhdl-port-list) "\\>") nil t)))
15540 (when (nth 3 vhdl-port-list)
15557 (message "Placing component \"%s\"...done" (nth 0 vhdl-port-list)))))))
15564 (unless (or (re-search-backward "^architecture[ \t\n]+\\w+[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t)
15580 signal-name signal-entry signal-alist local-list written-list
15581 single-in-list multi-in-list single-out-list multi-out-list
15582 constant-name constant-entry constant-alist single-list multi-list
15599 has-generic (or (match-string 7) (match-string 17)))
15622 (setq generic-alist (nth 1 vhdl-port-list)
15623 port-alist (nth 2 vhdl-port-list)
15624 vhdl-port-list nil)
15635 (or (aget generic-alist (match-string 2) t)
15640 (if (or (member constant-name single-list)
15641 (member constant-name multi-list))
15642 (progn (setq single-list (delete constant-name single-list))
15643 (add-to-list 'multi-list constant-name))
15644 (add-to-list 'single-list constant-name))
15655 (or (aget port-alist (match-string 2) t)
15663 ((member signal-name local-list)
15665 ((or (member signal-name single-out-list)
15666 (member signal-name multi-out-list))
15667 (setq single-out-list (delete signal-name single-out-list))
15668 (setq multi-out-list (delete signal-name multi-out-list))
15669 (add-to-list 'local-list signal-name))
15670 ((member signal-name single-in-list)
15671 (setq single-in-list (delete signal-name single-in-list))
15672 (add-to-list 'multi-in-list signal-name))
15673 ((not (member signal-name multi-in-list))
15674 (add-to-list 'single-in-list signal-name)))
15677 ((member signal-name local-list)
15679 ((or (member signal-name single-in-list)
15680 (member signal-name multi-in-list))
15681 (setq single-in-list (delete signal-name single-in-list))
15682 (setq multi-in-list (delete signal-name multi-in-list))
15683 (add-to-list 'local-list signal-name))
15684 ((member signal-name single-out-list)
15685 (setq single-out-list (delete signal-name single-out-list))
15686 (add-to-list 'multi-out-list signal-name))
15687 ((not (member signal-name multi-out-list))
15688 (add-to-list 'single-out-list signal-name))))
15692 (setq inst-alist (cons (list inst-name (nreverse constant-alist)
15722 (when multi-list
15740 (when (or multi-in-list multi-out-list)
15760 (cond ((member constant-name written-list)
15762 ((member constant-name multi-list)
15769 (add-to-list 'written-list constant-name))
15776 (add-to-list 'written-list constant-name)))
15787 (cond ((member signal-name written-list)
15789 ((member signal-name multi-in-list)
15795 (add-to-list 'written-list signal-name))
15796 ((member signal-name multi-out-list)
15802 (add-to-list 'written-list signal-name))
15803 ((or (member signal-name single-in-list)
15804 (member signal-name single-out-list))
15811 (add-to-list 'written-list signal-name))
15816 (add-to-list 'written-list signal-name)))
15896 (or project default-directory) t))
15902 (not (y-or-n-p (concat "File \"" pack-file-name
16016 ;; b) from mra, or c) from first architecture
16017 (or (nth 0 (aget (nth 3 ent-entry)
16018 (or (nth 6 inst-entry)
16042 ;; insert block configuration end or remove beginning (for architecture)
16052 (or (vhdl-project-p) default-directory) t))
16054 (or (vhdl-project-p) default-directory) t))
16081 (not (y-or-n-p (concat "File \"" conf-file-name
16131 "Return the Makefile name of the current project or the current compiler if
16137 (or (nth 8 project-alist) (nth 8 compiler-alist)))
16154 (defun vhdl-uniquify (in-list)
16156 (let (out-list)
16157 (while in-list
16158 (add-to-list 'out-list (car in-list))
16159 (setq in-list (cdr in-list)))
16160 out-list))
16165 (list (let ((completion-ignore-case t))
16177 (when (or (null compilation-error-regexp-alist)
16185 (unless (or (equal "" (car sublist))
16187 (setq regexp-alist (cons (list (nth 0 sublist)
16203 (unless (or (equal "" (car sublist))
16224 (exception-list (and file-name (nth 2 project-entry)))
16228 (while (and exception-list
16229 (not (string-match (caar exception-list) file-name)))
16230 (setq exception-list (cdr exception-list)))
16231 (if (and exception-list (not (cdar exception-list)))
16233 (if (and file-options-only (not exception-list))
16235 (setq file-options (cdar exception-list))
16254 (or file-options project-options compiler-options)))))
16273 (or project-options compiler-options)))
16281 (compiler (or (aget vhdl-compiler-alist vhdl-compiler nil)
16313 (or target (read-from-minibuffer "Target: " vhdl-make-target
16317 (compiler (or (aget vhdl-compiler-alist vhdl-compiler)
16334 (let* ((compiler (or (aget vhdl-compiler-alist vhdl-compiler)
16347 (let (pack-list)
16350 (setq pack-list (cons (cdar lib-alist) pack-list)))
16352 pack-list))
16355 "Generate Makefile for current project or directory."
16358 (unless (or (assoc vhdl-project vhdl-file-alist)
16362 (unless (or (assoc directory vhdl-file-alist)
16367 (ent-alist (aget vhdl-entity-alist (or project directory) t))
16368 (conf-alist (aget vhdl-config-alist (or project directory) t))
16369 (pack-alist (aget vhdl-package-alist (or project directory) t))
16370 (regexp-list (nth 12 (aget vhdl-compiler-alist vhdl-compiler)))
16371 (ent-regexp (cons "\\(.*\\)" (nth 0 regexp-list)))
16372 (arch-regexp (cons "\\(.*\\) \\(.*\\)" (nth 1 regexp-list)))
16373 (conf-regexp (cons "\\(.*\\)" (nth 2 regexp-list)))
16374 (pack-regexp (cons "\\(.*\\)" (nth 3 regexp-list)))
16375 (pack-body-regexp (cons "\\(.*\\)" (nth 4 regexp-list)))
16376 (adjust-case (nth 5 regexp-list))
16382 target-list depend-list unit-list prim-list second-list subcomp-list
16383 lib-alist lib-body-alist pack-list all-pack-list
16388 tmp-key tmp-list rule)
16392 (unless regexp-list
16397 (setq tmp-list ent-alist)
16407 target-list (nth 0 rule)
16408 depend-list (nth 1 rule)
16409 second-list nil
16410 subcomp-list nil)
16413 (setq unit-list (cons (cons ent-key tmp-key) unit-list))
16415 (setq target-list (cons ent-key target-list))
16417 (setq pack-list (vhdl-get-packages lib-alist work-library))
16418 (setq depend-list (append depend-list pack-list))
16419 (setq all-pack-list pack-list)
16421 (aput 'rule-alist ent-file-name (list target-list depend-list))
16432 target-list (nth 0 rule)
16433 depend-list (nth 1 rule))
16437 (setq unit-list
16438 (cons (cons ent-arch-key tmp-key) unit-list))
16439 (setq second-list (cons ent-arch-key second-list))
16441 (setq target-list (cons ent-arch-key target-list))
16443 (setq depend-list (cons ent-key depend-list))
16447 (when (or (null (nth 8 inst-entry))
16449 (setq inst-ent-key (or (nth 7 inst-entry)
16451 (setq depend-list (cons inst-ent-key depend-list)
16452 subcomp-list (cons inst-ent-key subcomp-list)))
16455 (setq pack-list (vhdl-get-packages lib-alist work-library))
16456 (setq depend-list (append depend-list pack-list))
16457 (setq all-pack-list (append all-pack-list pack-list))
16459 (aput 'rule-alist arch-file-name (list target-list depend-list))
16461 (setq prim-list (cons (list ent-key second-list
16462 (append subcomp-list all-pack-list))
16463 prim-list)))
16465 (setq ent-alist tmp-list)
16467 (setq tmp-list conf-alist)
16478 target-list (nth 0 rule)
16479 depend-list (nth 1 rule)
16480 subcomp-list (list ent-key))
16483 (setq unit-list (cons (cons conf-key tmp-key) unit-list))
16485 (setq target-list (cons conf-key target-list))
16487 (setq depend-list
16488 (cons ent-key (cons (concat ent-key "-" arch-key) depend-list)))
16490 (setq pack-list (vhdl-get-packages lib-alist work-library))
16491 (setq depend-list (append depend-list pack-list))
16500 (setq depend-list (cons inst-ent-key depend-list)
16501 subcomp-list (cons inst-ent-key subcomp-list)))
16503 ; (setq depend-list (cons (concat comp-ent-key "-" comp-arch-key)
16504 ; depend-list)))
16506 (setq depend-list (cons inst-conf-key depend-list)
16507 subcomp-list (cons inst-conf-key subcomp-list))))
16510 (aput 'rule-alist conf-file-name (list target-list depend-list))
16511 (setq prim-list (cons (list conf-key nil (append subcomp-list pack-list))
16512 prim-list))
16514 (setq conf-alist tmp-list)
16516 (setq tmp-list pack-alist)
16526 target-list (nth 0 rule) depend-list (nth 1 rule))
16529 (setq unit-list (cons (cons pack-key tmp-key) unit-list))
16531 (setq target-list (cons pack-key target-list))
16533 (setq pack-list (vhdl-get-packages lib-alist work-library))
16534 (setq depend-list (append depend-list pack-list))
16535 (setq all-pack-list pack-list)
16537 (aput 'rule-alist pack-file-name (list target-list depend-list))
16544 target-list (nth 0 rule)
16545 depend-list (nth 1 rule))
16548 (setq unit-list
16549 (cons (cons pack-body-key tmp-key) unit-list))
16551 (setq target-list (cons pack-body-key target-list))
16553 (setq depend-list (cons pack-key depend-list))
16555 (setq pack-list (vhdl-get-packages lib-body-alist work-library))
16556 (setq depend-list (append depend-list pack-list))
16557 (setq all-pack-list (append all-pack-list pack-list))
16560 (list target-list depend-list)))
16561 (setq prim-list
16562 (cons (list pack-key (when pack-body-key (list pack-body-key))
16563 all-pack-list)
16564 prim-list)))
16566 (setq pack-alist tmp-list)
16574 (cons "\\(.*\\)" (or (nth 7 project) (nth 7 compiler)))
16579 cell second-list subcomp-list options unit-key unit-name)
16581 (setq unit-list (vhdl-sort-alist unit-list))
16582 (setq prim-list (vhdl-sort-alist prim-list))
16583 (setq tmp-list rule-alist)
16584 (while tmp-list ; pre-sort rule targets
16585 (setq cell (cdar tmp-list))
16587 (setq tmp-list (cdr tmp-list)))
16622 (setq tmp-list unit-list)
16623 (while unit-list
16624 (insert "\nUNIT-" work-library "-" (caar unit-list)
16625 " = \\\n\t$(LIBRARY-" work-library ")/" (cdar unit-list))
16626 (setq unit-list (cdr unit-list)))
16627 ;; insert variable definition for list of all library unit files
16628 (insert "\n\n\n# Define list of all library unit files\n"
16630 (setq unit-list tmp-list)
16631 (while unit-list
16632 (insert " \\\n\t" "$(UNIT-" work-library "-" (caar unit-list) ")")
16633 (setq unit-list (cdr unit-list)))
16635 (setq unit-list tmp-list)
16657 (while prim-list
16658 (setq second-list (sort (nth 1 (car prim-list)) 'string<))
16659 (setq subcomp-list
16660 (sort (vhdl-uniquify (nth 2 (car prim-list))) 'string<))
16661 (setq unit-key (caar prim-list)
16662 unit-name (or (nth 0 (aget ent-alist unit-key t))
16671 (while second-list
16672 (insert " \\\n\t\t$(UNIT-" work-library "-" (car second-list) ")")
16673 (setq second-list (cdr second-list)))
16674 (while subcomp-list
16675 (when (and (assoc (car subcomp-list) unit-list)
16676 (not (equal unit-key (car subcomp-list))))
16677 (insert " \\\n\t\t" (car subcomp-list)))
16678 (setq subcomp-list (cdr subcomp-list)))
16680 (setq prim-list (cdr prim-list)))
16689 (setq target-list (nth 1 rule)
16690 depend-list (sort (vhdl-uniquify (nth 2 rule)) 'string<))
16692 (setq tmp-list target-list)
16693 (while target-list
16694 (insert "\n$(UNIT-" work-library "-" (car target-list) ")"
16695 (if (cdr target-list) " \\" " :"))
16696 (setq target-list (cdr target-list)))
16697 (setq target-list tmp-list)
16700 ;; insert dependencies (except if also target or unit does not exist)
16701 (while depend-list
16702 (when (and (not (member (car depend-list) target-list))
16703 (assoc (car depend-list) unit-list))
16705 "$(UNIT-" work-library "-" (car depend-list) ")"))
16706 (setq depend-list (cdr depend-list)))
16712 (setq tmp-list target-list)
16713 (while target-list
16714 (insert "\n\t@touch $(UNIT-" work-library "-" (car target-list) ")"
16715 (if (cdr target-list) " \\" "\n"))
16716 (setq target-list (cdr target-list)))
16717 (setq target-list tmp-list))
16749 (y-or-n-p "Do you want to submit a report on VHDL Mode? ")
16754 (list
16789 'vhdl-argument-list-indent
16790 'vhdl-association-list-with-formals
16990 (help-setup-xref (list #'vhdl-doc-variable variable) (interactive-p)))
17002 (help-setup-xref (list #'vhdl-doc-mode) (interactive-p)))