403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/progmodes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/progmodes/verilog-mode.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



#@31 Version of this Verilog mode.
(defconst verilog-mode-version "2021-09-23-54ffde4-vpo-GNU" (#$ . 84))
#@74 If non-nil, this version of Verilog mode was released with Emacs itself.
(defconst verilog-mode-release-emacs t (#$ . 191))
#@44 Inform caller of the version of this file.
(defalias 'verilog-version #[0 "\301\302\"\207" [verilog-mode-version message "Using verilog-mode version %s"] 3 (#$ . 321) nil])
#@28 

(fn WARNINGS &rest BODY)
(defalias 'verilog--suppressed-warnings '(macro . #[385 "\300\301!\203\f\301BB\207\300\302!\203\302B\207\303B\207" [fboundp with-suppressed-warnings with-no-warnings progn] 5 (#$ . 501)]))
(byte-code "\301\302\303\304#\305\302\306\307#\210\310\311\312\"\210\313\314!\203\310\315\314\"\210\202#\310\315\316\"\210\313\317!\2031\310\320\317\"\210\2026\310\320\321\"\210\313\322!\203D\310\323\322\"\210\202I\310\323\324\"\210\3251U\326\327!0\210\202V\210\3301b\326\331!0\210\202c\210\3321y\313\333!?\205t\310\333\334\335B\"0\210\202z\210\313\336!\204\223\310\336\334\337B\"\305\336\306\307#\210\301\336\303\340#\266\3411\313\342!?\205\343\344!\210\345\346N\204\256\305\345\346\347#\210\350\351!\204\272\305\351\352\342#\210\353\354 !\210\351\346N\204\315\305\351\346\355\356!#\210\350\357!\204\336\305\357\352\342#\210\360\361 !\210\357\346N\204\354\305\357\346\355\362!#\210\350\300!\204\305\300\352\342#\210\363\364\300\344\"\210!\210\300\346N\204\305\300\346\355\365!#\210\305\342\366\344#\210\310\342\367\"0\210\202\210\37010\313\371!?\205.\310\371\372\"0\207\210\344\207" [prog-mode-abbrev-table function-put verilog--suppressed-warnings lisp-indent-function 1 put edebug-form-spec t defalias verilog-regexp-opt regexp-opt fboundp looking-back verilog-looking-back #[770 "`\212\300\301\302Q\303#\205`)\203H\211\203H\214e}\210\211eV\203;\212\211b\210\304u\210\305\301\306Q!)\203;\211S\262\202\212\211b\210\305\301\306Q!\210*\211??\207" [re-search-backward "\\(?:" "\\)\\=" t -1 looking-at "\\)\\'"] 9 "Return non-nil if text before point matches regular expression REGEXP.\nLike `looking-at' except matches before point, and is slower.\nLIMIT if non-nil speeds up the search by specifying a minimum\nstarting position, to avoid checking matches that would start\nbefore LIMIT.\n\nIf GREEDY is non-nil, extend the match backwards as far as\npossible, stopping when a single additional previous character\ncannot be part of a match for REGEXP.  When the match is\nextended, its starting position is allowed to occur before\nLIMIT.\n\nAs a general recommendation, try to avoid using `looking-back'\nwherever possible, since it is slow.\n\n(fn REGEXP LIMIT &optional GREEDY)"] restore-buffer-modified-p verilog-restore-buffer-modified-p set-buffer-modified-p quit-window verilog-quit-window #[514 "\300!\207" [delete-window] 4 "Quit WINDOW and bury its buffer. KILL-IGNORED is ignored.\n\n(fn KILL-IGNORED WINDOW)"] (error) require diff (error) compile (error) buffer-chars-modified-tick macro #[0 "\300 \207" [buffer-modified-tick] 1] ignore-errors #[128 "\300\301\302B\303BBB\207" [condition-case nil progn ((error nil))] 5 "\n\n(fn &rest BODY)"] 0 (error) prog-mode (lambda (#1=#:def-tmp-var) (defvar prog-mode-hook #1#)) nil prog-mode-hook variable-documentation "Hook run after entering Prog mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp prog-mode-map definition-name (lambda (#1#) (defvar prog-mode-map #1#)) make-sparse-keymap purecopy "Keymap for `prog-mode'." prog-mode-syntax-table (lambda (#1#) (defvar prog-mode-syntax-table #1#)) make-syntax-table "Syntax table for `prog-mode'." (lambda (#1#) (defvar prog-mode-abbrev-table #1#)) define-abbrev-table "Abbrev table for `prog-mode'." derived-mode-parent #[0 "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210
)\315\316!\207" [delay-mode-hooks major-mode mode-name prog-mode-map prog-mode-syntax-table prog-mode-abbrev-table make-local-variable t kill-all-local-variables prog-mode "Prog" use-local-map set-syntax-table run-mode-hooks prog-mode-hook local-abbrev-table] 2 "Major-mode.\nUses keymap `prog-mode-map', abbrev table `prog-mode-abbrev-table' and\nsyntax-table `prog-mode-syntax-table'.\n\nThis mode runs the hook `prog-mode-hook', as the final or penultimate\nstep during initialization.\n\n\\{prog-mode-map}" nil] (error) forward-word-strictly forward-word] 6)
#@65 Call `regexp-opt' with word delimiters for the words A.

(fn A)
(defalias 'verilog-regexp-words #[257 "\300\301\302\"\303Q\207" ["\\<" verilog-regexp-opt t "\\>"] 5 (#$ . 4530)])
#@68 Filter `easy-menu-define' MENU to support new features.

(fn MENU)
(defalias 'verilog-easy-menu-filter #[257 "\207" [] 2 (#$ . 4716)])
#@161 Filter `define-abbrev-table' TABLENAME DEFINITIONS.
Provides DOCSTRING PROPS in newer Emacs (23.1).

(fn TABLENAME DEFINITIONS &optional DOCSTRING &rest PROPS)
(defalias 'verilog-define-abbrev-table #[898 "\3001
\301\302%0\207\210\302\"\207" [(error) apply define-abbrev-table] 10 (#$ . 4858)])
#@139 Filter `define-abbrev' TABLE NAME EXPANSION and call HOOK.
Provides SYSTEM-FLAG in newer Emacs.

(fn TABLE NAME EXPANSION &optional HOOK)
(defalias 'verilog-define-abbrev #[1027 "\3001\301\302\303&0\207\210\301$\207" [(error) define-abbrev 0 t] 11 (#$ . 5167)])
#@62 Customize variables and other settings used by Verilog-Mode.
(defalias 'verilog-customize #[0 "\300\301!\207" [customize-group verilog-mode] 2 (#$ . 5446) nil])
#@39 Customize fonts used by Verilog-Mode.
(defalias 'verilog-font-customize #[0 "\300\301!\205\n\301\302\303\"\207" [fboundp customize-apropos "font-lock-*" faces] 3 (#$ . 5613) nil])
#@181 Return t if VALUE is boolean.
This implements GNU Emacs 22.1's `booleanp' function in earlier Emacs.
This function may be removed when Emacs 21 is no longer supported.

(fn VALUE)
(defalias 'verilog-booleanp #[257 "\211\300=\206\211?\207" [t] 3 (#$ . 5801)])
#@34 Insert the `last-command-event'.
(defalias 'verilog-insert-last-command-event #[0 "c\207" [last-command-event] 1 (#$ . 6068)])
#@114 True if `after-change-functions' is disabled.
Use of `syntax-ppss' may break, as ppss's cache may get corrupted.
(defvar verilog-no-change-functions nil (#$ . 6203))
#@47 True when within a `verilog-run-hooks' block.
(defvar verilog-in-hooks nil (#$ . 6375))
#@125 Run each hook in HOOKS using `run-hooks'.
Set `verilog-in-hooks' during this time, to assist AUTO caches.

(fn &rest HOOKS)
(defalias 'verilog-run-hooks '(macro . #[128 "\300\301\302BE\207" [let ((verilog-in-hooks t)) run-hooks] 5 (#$ . 6470)]))
#@22 

(fn &optional POS)
(defalias 'verilog-syntax-ppss #[256 "\203	\203\302 \210\202\303 \210\304\305\306 \"\210\307\310!\203!\310!\207\311e\206(`\"\207" [verilog-no-change-functions verilog-in-hooks verilog-scan-cache-flush backtrace error "%s: Internal problem; use of syntax-ppss when cache may be corrupt" verilog-point-text fboundp syntax-ppss parse-partial-sexp] 4 (#$ . 6723)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\306\301%\210\300\312\302\313\306\301%\210\300\314\302\315\306\301%\207" [custom-declare-group verilog-mode nil "Major mode for Verilog source code." :version "22.2" :group languages verilog-mode-indent "Customize indentation and highlighting of Verilog source text." verilog-mode-actions "Customize actions on Verilog source text." verilog-mode-auto "Customize AUTO actions when expanding Verilog source text."] 8)
#@67 Non-nil means enable debug messages for `verilog-mode' internals.
(defvar verilog-debug nil (#$ . 7604))
#@65 Non-nil means `verilog-warn-error' warnings are fatal `error's.
(defvar verilog-warn-fatal nil (#$ . 7715))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\300\315\302\303\316DD\317\306\307\310\311&\210\300\320\302\303\321DD\322\306\307\310\311&\210\300\323\302\303\324DD\325\306\307\310\311&\207" [custom-declare-variable verilog-linter funcall function #[0 "\300\207" ["echo 'No verilog-linter set, see \"M-x describe-variable verilog-linter\"'"] 1 #1=""] "Unix program and arguments to call to run a lint checker on Verilog source.\nDepending on the `verilog-set-compile-command', this may be invoked when\nyou type \\[compile].  When the compile completes, \\[next-error] will take\nyou to the next lint error." :type string :group verilog-mode-actions verilog-coverage #[0 "\300\207" ["echo 'No verilog-coverage set, see \"M-x describe-variable verilog-coverage\"'"] 1 #1#] "Program and arguments to use to annotate for coverage Verilog source.\nDepending on the `verilog-set-compile-command', this may be invoked when\nyou type \\[compile].  When the compile completes, \\[next-error] will take\nyou to the next lint error." verilog-simulator #[0 "\300\207" ["echo 'No verilog-simulator set, see \"M-x describe-variable verilog-simulator\"'"] 1 #1#] "Program and arguments to use to interpret Verilog source.\nDepending on the `verilog-set-compile-command', this may be invoked when\nyou type \\[compile].  When the compile completes, \\[next-error] will take\nyou to the next lint error." verilog-compiler #[0 "\300\207" ["echo 'No verilog-compiler set, see \"M-x describe-variable verilog-compiler\"'"] 1 #1#] "Program and arguments to use to compile Verilog source.\nDepending on the `verilog-set-compile-command', this may be invoked when\nyou type \\[compile].  When the compile completes, \\[next-error] will take\nyou to the next lint error." verilog-preprocessor #[0 "\300\207" ["verilator -E __FLAGS__ __FILE__"] 1 #1#] "Program and arguments to use to preprocess Verilog source.\nThis is invoked with `verilog-preprocess', and depending on the\n`verilog-set-compile-command', may also be invoked when you type\n\\[compile].  When the compile completes, \\[next-error] will\ntake you to the next lint error."] 8)
#@35 History for `verilog-preprocess'.
(defvar verilog-preprocess-history nil (#$ . 10013))
#@281 Which tool to use for building compiler-command.
Either nil, `verilog-linter', `verilog-compiler',
`verilog-coverage', `verilog-preprocessor', or `verilog-simulator'.
Alternatively use the "Choose Compilation Action" menu.  See
`verilog-set-compile-command' for more information.
(defvar verilog-tool 'verilog-linter (#$ . 10107))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\210\300\315\302\303\316DD\317\306\320\310\311&\210\312\315\313\321#\210\300\322\302\303\323DD\324\310\311\306\325&\210\312\322\313\326#\210\300\327\302\303\330DD\331\310\311\306\325&\210\312\327\313\326#\210\300\332\302\303\333DD\334\310\311\306\325&\210\312\332\313\326#\210\300\335\302\303\336DD\337\310\311\306\307&\210\312\335\313\314#\210\300\340\302\303\341DD\342\310\311\306\307&\210\312\340\313\314#\210\300\343\302\303\344DD\345\310\311\306\325&\210\312\343\313\326#\210\300\346\302\303\347DD\350\310\311\306\325&\210\312\346\313\326#\210\300\351\302\303\352DD\353\310\311\306\325&\210\312\351\313\326#\210\300\354\302\303\355DD\356\310\311\306\325&\210\312\354\313\326#\210\300\357\302\303\360DD\361\310\311\306\307&\210\312\357\313\314#\210\300\362\302\303\363DD\364\310\311\306\307&\210\312\362\313\314#\210\300\365\302\303\366DD\367\310\311\306\307&\210\312\365\313\314#\210\300\370\302\303\371DD\372\310\373\306\307&\210\312\370\313\314#\210\300\374\302\303\375DD\376\310\311\306\307&\210\312\374\313\314#\210\300\377\302\303\201@DD\201A\310\311\306\307&\210\312\377\313\314#\210\300\201B\302\303\201CDD\201D\310\311\306\325&\210\312\201B\313\326#\210\300\201E\302\303\201FDD\201G\310\311\306\307&\210\312\201E\313\314#\210\201H\201E\201I\201J#\210\300\201K\302\303\201LDD\201M\310\311\306\307&\210\312\201K\313\314#\210\300\201N\302\303\201ODD\201P\310\311\306\307&\210\312\201N\313\314#\210\300\201Q\302\303\201RDD\201S\310\311\306\307&\210\312\201Q\313\314#\210\300\201T\302\303\201UDD\201V\310\311\306\325&\210\312\201T\313\326#\210\300\201W\302\303\201XDD\201Y\201Z\201[\310\373\306\307&	\210\312\201W\313\201\\#\210\300\201]\302\303\201^DD\201_\201Z\201`\310\373\306\307&	\210\312\201]\313\314#\210\300\201a\302\303\201bDD\201c\201Z\201[\310\373\306\201d&	\210\312\201a\313\201\\#\210\300\201e\302\303\201fDD\201g\310\373\306\307&\210\312\201e\313\314#\210\300\201h\302\303\201iDD\201j\201Z\201[\310\373\306\307&	\210\312\201h\313\314#\210\300\201k\302\303\201lDD\201m\310\373\306\307&\210\312\201k\313\314#\210\300\201n\302\303\201oDD\201p\310\373\306\307&\210\312\201n\313\314#\210\300\201q\302\303\201rDD\201s\310\373\306\201t&\210\300\201u\302\303\201vDD\201w\310\373\306\307&\210\312\201u\313\314#\210\300\201x\302\303\201yDD\201z\310\373\306\307&\210\312\201x\313\314#\207" [custom-declare-variable verilog-highlight-translate-off funcall function #[0 "\300\207" [nil] 1 #1=""] "Non-nil means background-highlight code excluded from translation.\nThat is, all code between \"// synopsys translate_off\" and\n\"// synopsys translate_on\" is highlighted using a different background color\n(face `verilog-font-lock-translate-off-face').\n\nNote: This will slow down on-the-fly fontification (and thus editing).\n\nNote: Activate the new setting in a Verilog buffer by re-fontifying it (menu\nentry \"Fontify Buffer\").  XEmacs: turn off and on font locking." :type boolean :group verilog-mode-indent put safe-local-variable verilog-booleanp verilog-auto-lineup #[0 "\300\207" [declarations] 1 #1#] "Type of statements to lineup across multiple lines.\nIf `all' is selected, then all line ups described below are done.\n\nIf `declarations', then just declarations are lined up with any\npreceding declarations, taking into account widths and the like,\nso or example the code:\n        reg [31:0] a;\n        reg b;\nwould become\n        reg [31:0] a;\n        reg        b;\n\nIf `assignment', then assignments are lined up with any preceding\nassignments, so for example the code\n        a_long_variable <= b + c;\n        d = e + f;\nwould become\n        a_long_variable <= b + c;\n        d                = e + f;\n\nIn order to speed up editing, large blocks of statements are lined up\nonly when a \\[verilog-pretty-expr] is typed; and large blocks of declarations\nare lineup only when \\[verilog-pretty-declarations] is typed." (radio (const :tag "Line up Assignments and Declarations" all) (const :tag "Line up Assignment statements" assignments) (const :tag "Line up Declarations" declarations) (function :tag "Other")) #[257 "\211\300>\207" [(nil all assignments declarations)] 3 "\n\n(fn X)"] verilog-indent-level #[0 "\300\207" [3] 1 #1#] "Indentation of Verilog statements with respect to containing block." integer integerp verilog-indent-level-module #[0 "\300\207" [3] 1 #1#] "Indentation of Module level Verilog statements (eg always, initial).\nSet to 0 to get initial and always statements lined up on the left side of\nyour screen." verilog-indent-level-declaration #[0 "\300\207" [3] 1 #1#] "Indentation of declarations with respect to containing block.\nSet to 0 to get them list right under containing block." verilog-indent-declaration-macros #[0 "\300\207" [nil] 1 #1#] "How to treat macro expansions in a declaration.\nIf nil, indent as:\n        input [31:0] a;\n        input        \\=`CP;\n        output       c;\nIf non-nil, treat as:\n        input [31:0] a;\n        input \\=`CP    ;\n        output       c;" verilog-indent-lists #[0 "\300\207" [t] 1 #1#] "How to treat indenting items in a list.\nIf t (the default), indent as:\n        always @( posedge a or\n                  reset ) begin\n\nIf nil, treat as:\n        always @( posedge a or\n           reset ) begin" verilog-indent-level-behavioral #[0 "\300\207" [3] 1 #1#] "Absolute indentation of first begin in a task or function block.\nSet to 0 to get such code to start at the left side of the screen." verilog-indent-level-directive #[0 "\300\207" [1] 1 #1#] "Indentation to add to each level of \\=`ifdef declarations.\nSet to 0 to have all directives start at the left side of the screen." verilog-cexp-indent #[0 "\300\207" [2] 1 #1#] "Indentation of Verilog statements split across lines." verilog-case-indent #[0 "\300\207" [2] 1 #1#] "Indentation for case statements." verilog-auto-newline #[0 "\300\207" [t] 1 #1#] "Non-nil means automatically newline after semicolons." verilog-auto-indent-on-newline #[0 "\300\207" [t] 1 #1#] "Non-nil means automatically indent line after newline." verilog-tab-always-indent #[0 "\300\207" [t] 1 #1#] "Non-nil means TAB should always re-indent the current line.\nA nil value means TAB will only reindent when at the beginning of the line." verilog-tab-to-comment #[0 "\300\207" [nil] 1 #1#] "Non-nil means TAB moves to the right hand column in preparation for a comment." verilog-mode-actions verilog-indent-begin-after-if #[0 "\300\207" [t] 1 #1#] "Non-nil means indent begin statements following if, else, while, etc.\nOtherwise, line them up." verilog-align-ifelse #[0 "\300\207" [nil] 1 #1#] "Non-nil means align `else' under matching `if'.\nOtherwise else is lined up with first character on line holding matching if." verilog-minimum-comment-distance #[0 "\300\207" [10] 1 #1#] "Minimum distance (in lines) between begin and end required before a comment.\nSetting this variable to zero results in every end acquiring a comment; the\ndefault avoids too many redundant comments in tight quarters." verilog-highlight-p1800-keywords #[0 "\300\207" [nil] 1 #1#] "Obsolete.\nWas non-nil means highlight SystemVerilog IEEE-1800 differently.\nAll code is now highlighted as if SystemVerilog IEEE-1800." make-obsolete-variable nil "27.1" verilog-highlight-grouping-keywords #[0 "\300\207" [nil] 1 #1#] "Non-nil means highlight grouping keywords more dramatically.\nIf false, these words are in the `font-lock-type-face'; if True\nthen they are in `verilog-font-lock-grouping-keywords-face'.\nSome find that special highlighting on these grouping constructs\nallow the structure of the code to be understood at a glance." verilog-highlight-modules #[0 "\300\207" [nil] 1 #1#] "Non-nil means highlight module statements for `verilog-load-file-at-point'.\nWhen true, mousing over module names will allow jumping to the\nmodule definition.  If false, this is not supported.  Setting\nthis is experimental, and may lead to bad performance." verilog-highlight-includes #[0 "\300\207" [t] 1 #1#] "Non-nil means highlight module statements for `verilog-load-file-at-point'.\nWhen true, mousing over include file names will allow jumping to the\nfile referenced.  If false, this is not supported." verilog-highlight-max-lookahead #[0 "\300\207" [10000] 1 #1#] "Maximum size of declaration statement that undergoes highlighting.\nHighlighting is performed only on the first `verilog-highlight-max-lookahead'\ncharacters in a declaration statement.\nSetting this variable to zero would remove this limit.  Note that removing\nthe limit can greatly slow down highlighting for very large files." verilog-auto-declare-nettype #[0 "\300\207" [nil] 1 #1#] "Non-nil specifies the data type to use with `verilog-auto-input' etc.\nSet this to \"wire\" if the Verilog code uses \"\\=`default_nettype\nnone\".  Note using \\=`default_nettype none isn't recommended practice; this\nmode is experimental." :version "24.1" stringp verilog-auto-wire-comment #[0 "\300\207" [t] 1 #1#] "Non-nil indicates to insert to/from comments with `verilog-auto-wire' etc." "25.1" verilog-auto-wire-type #[0 "\300\207" [nil] 1 #1#] "Non-nil specifies the data type to use with `verilog-auto-wire' etc.\nSet this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'.\nSet this to \"wire\" to force use of wire when logic is otherwise appropriate;\nthis is generally only appropriate when making a non-SystemVerilog wrapper\ncontaining SystemVerilog cells." (choice (const nil) string) verilog-auto-endcomments #[0 "\300\207" [t] 1 #1#] "Non-nil means insert a comment /* ... */ after `end's.\nThe name of the function or case will be set between the braces." verilog-auto-delete-trailing-whitespace #[0 "\300\207" [nil] 1 #1#] "Non-nil means to `delete-trailing-whitespace' in `verilog-auto'." verilog-auto-ignore-concat #[0 "\300\207" [nil] 1 #1#] "Non-nil means ignore signals in {...} concatenations for AUTOWIRE etc.\nThis will exclude signals referenced as pin connections in {...}\nor (...) from AUTOWIRE, AUTOOUTPUT and friends.  See also AUTONOHOOKUP." verilog-auto-read-includes #[0 "\300\207" [nil] 1 #1#] "Non-nil means to automatically read includes before AUTOs.\nThis will do a `verilog-read-defines' and `verilog-read-includes' before\neach AUTO expansion.  This makes it easier to embed defines and includes,\nbut can result in very slow reading times if there are many or large\ninclude files." verilog-auto-save-policy #[0 "\300\207" [nil] 1 #1#] "Non-nil indicates action to take when saving a Verilog buffer with AUTOs.\nA value of `force' will always do a \\[verilog-auto] automatically if\nneeded on every save.  A value of `detect' will do \\[verilog-auto]\nautomatically when it thinks necessary.  A value of `ask' will query the\nuser when it thinks updating is needed.\n\nYou should not rely on the `ask' or `detect' policies, they are safeguards\nonly.  They do not detect when AUTOINSTs need to be updated because a\nsub-module's port list has changed." (choice (const nil) (const ask) (const detect) (const force)) verilog-auto-star-expand #[0 "\300\207" [t] 1 #1#] "Non-nil means to expand SystemVerilog .* instance ports.\nThey will be expanded in the same way as if there was an AUTOINST in the\ninstantiation.  See also `verilog-auto-star' and `verilog-auto-star-save'." verilog-auto-star-save #[0 "\300\207" [nil] 1 #1#] "Non-nil means save to disk SystemVerilog .* instance expansions.\nA nil value indicates direct connections will be removed before saving.\nOnly meaningful to those created due to `verilog-auto-star-expand' being set.\n\nInstead of setting this, you may want to use /*AUTOINST*/, which will\nalways be saved."] 10)
#@55 Modification tick at which autos were last performed.
(defvar verilog-auto-update-tick nil (#$ . 22244))
#@56 Text from file-local-variables during last evaluation.
(defvar verilog-auto-last-file-locals nil (#$ . 22355))
#@199 Function to run when `verilog-diff-auto' detects differences.
Function takes three arguments, the original buffer, the
difference buffer, and the point in original buffer with the
first difference.
(defvar verilog-diff-function 'verilog-diff-report (#$ . 22473))
#@88 Non-nil specifies regexp which `verilog-diff-auto' will ignore.
This is typically nil.
(defvar verilog-diff-ignore-regexp nil (#$ . 22742))
(require 'compile)
(defvar verilog-error-regexp-added nil)
#@113 List of regexps for Verilog compilers.
See `compilation-error-regexp-alist' for the formatting.  For Emacs 22+.
(defvar verilog-error-regexp-emacs-alist '((verilog-xl-1 "\\(Error\\|Warning\\)!.*\n?.*\"\\([^\"]+\\)\", \\([0-9]+\\)" 2 3) (verilog-xl-2 "([WE][0-9A-Z]+)[ 	]+\\([^ 	\n,]+\\)[, 	]+\\(line[ 	]+\\)?\\([0-9]+\\):.*$" 1 3) (verilog-IES ".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ 	,]+\\),\\([0-9]+\\)" 2 3) (verilog-surefire-1 "[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 2) (verilog-surefire-2 "\\(WARNING\\|ERROR\\|INFO\\)[^:]*: \\([^,]+\\),\\s-+\\(line \\)?\\([0-9]+\\):" 2 4) (verilog-verbose "\\([a-zA-Z]?:?[^:( 	\n]+\\)[:(][ 	]*\\([0-9]+\\)\\([) 	]\\|:\\([^0-9\n]\\|\\([0-9]+:\\)\\)\\)" 1 2 5) (verilog-xsim "\\(Error\\|Warning\\).*in file (\\([^ 	]+\\) at line *\\([0-9]+\\))" 2 3) (verilog-vcs-1 "\\(Error\\|Warning\\):[^(]*(\\([^ 	]+\\) line *\\([0-9]+\\))" 2 3) (verilog-vcs-2 "Warning:.*(port.*(\\([^ 	]+\\) line \\([0-9]+\\))" 1 2) (verilog-vcs-3 "\\(Error\\|Warning\\):[\n.]*\\([^ 	]+\\) *\\([0-9]+\\):" 2 3) (verilog-vcs-4 "syntax error:.*\n\\([^ 	]+\\) *\\([0-9]+\\):" 1 2) (verilog-verilator "%?\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 	:]+\\):\\([0-9]+\\):" 3 4) (verilog-leda "^In file \\([^ 	]+\\)[ 	]+line[ 	]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 2)) (#$ . 22948))
#@116 List of regexps for Verilog compilers.
See `compilation-error-regexp-alist-alist' for the formatting.  For XEmacs.
(defvar verilog-error-regexp-xemacs-alist (byte-code "\301\302\303\"B\207" [verilog-error-regexp-emacs-alist verilog mapcar cdr] 4) (#$ . 24295))
#@134 Keywords to also highlight in Verilog *compilation* buffers.
Only used in XEmacs; GNU Emacs uses `verilog-error-regexp-emacs-alist'.
(defvar verilog-error-font-lock-keywords '(("\\(Error\\|Warning\\)!.*\n?.*\"\\([^\"]+\\)\", \\([0-9]+\\)" 2 bold t) ("\\(Error\\|Warning\\)!.*\n?.*\"\\([^\"]+\\)\", \\([0-9]+\\)" 2 bold t) ("([WE][0-9A-Z]+)[ 	]+\\([^ 	\n,]+\\)[, 	]+\\(line[ 	]+\\)?\\([0-9]+\\):.*$" 1 bold t) ("([WE][0-9A-Z]+)[ 	]+\\([^ 	\n,]+\\)[, 	]+\\(line[ 	]+\\)?\\([0-9]+\\):.*$" 3 bold t) (".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ 	,]+\\),\\([0-9]+\\)|" 2 bold t) (".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ 	,]+\\),\\([0-9]+\\)|" 3 bold t) ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 bold t) ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 2 bold t) ("\\(WARNING\\|ERROR\\|INFO\\): \\([^,]+\\), line \\([0-9]+\\):" 2 bold t) ("\\(WARNING\\|ERROR\\|INFO\\): \\([^,]+\\), line \\([0-9]+\\):" 3 bold t) ("\\([a-zA-Z]?:?[^:( 	\n]+\\)[:(][ 	]*\\([0-9]+\\)\\([) 	]\\|:\\([^0-9\n]\\|\\([0-9]+:\\)\\)\\)" 1 bold t) ("\\([a-zA-Z]?:?[^:( 	\n]+\\)[:(][ 	]*\\([0-9]+\\)\\([) 	]\\|:\\([^0-9\n]\\|\\([0-9]+:\\)\\)\\)" 1 bold t) ("\\(Error\\|Warning\\):[^(]*(\\([^ 	]+\\) line *\\([0-9]+\\))" 2 bold t) ("\\(Error\\|Warning\\):[^(]*(\\([^ 	]+\\) line *\\([0-9]+\\))" 3 bold t) ("Warning:.*(port.*(\\([^ 	]+\\) line \\([0-9]+\\))" 1 bold t) ("Warning:.*(port.*(\\([^ 	]+\\) line \\([0-9]+\\))" 1 bold t) ("\\(Error\\|Warning\\):[\n.]*\\([^ 	]+\\) *\\([0-9]+\\):" 2 bold t) ("\\(Error\\|Warning\\):[\n.]*\\([^ 	]+\\) *\\([0-9]+\\):" 3 bold t) ("syntax error:.*\n\\([^ 	]+\\) *\\([0-9]+\\):" 1 bold t) ("syntax error:.*\n\\([^ 	]+\\) *\\([0-9]+\\):" 2 bold t) (".*\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 	:]+\\):\\([0-9]+\\):" 3 bold t) (".*\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 	:]+\\):\\([0-9]+\\):" 4 bold t) ("^In file \\([^ 	]+\\)[ 	]+line[ 	]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 bold t) ("^In file \\([^ 	]+\\)[ 	]+line[ 	]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 2 bold t)) (#$ . 24564))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\210\300\315\302\303\316DD\317\306\307\310\320&\210\312\315\313\314#\210\300\321\302\303\322DD\323\306\307\310\324&\210\312\321\313\314#\210\300\325\302\303\326DD\327\310\330\306\307&\210\312\325\313\314#\210\300\331\302\303\332DD\333\306\307\310\334&\210\312\331\313\335#\210\300\336\302\303\337DD\340\306\307\310\341&\210\312\336\313\342#\210\300\343\302\303\344DD\345\306\307\310\341&\210\312\343\313\342#\210\300\346\302\303\347DD\350\351\352\306\307\310\341&	\210\312\346\313\342#\210\300\353\302\303\354DD\355\351\356\310\341\306\307&	\210\312\353\313\342#\210\300\357\302\303\360DD\361\310\341\306\307&\210\312\357\313\362#\210\300\363\302\303\364DD\365\306\307\310\366&\210\312\363\313\335#\210\300\367\302\303\370DD\371\351\372\310\373\306\307&	\210\312\367\313\374#\210\300\375\302\303\376DD\377\306\307\310\341&\210\312\375\313\342#\210\300\201@\302\303\201ADD\201B\306\307\310\341&\210\312\201@\313\342#\210\300\201C\302\303\201DDD\201E\306\307\310\341&\210\312\201C\313\342#\210\300\201F\302\303\201GDD\201H\351\372\306\307\310\341&	\210\312\201F\313\342#\210\300\201I\302\303\201JDD\201K\351\356\306\307\310\341&	\210\312\201I\313\342#\210\300\201L\302\303\201MDD\201N\306\307\310\201O&\210\312\201L\313\201P#\210\300\201Q\302\303\201RDD\201S\306\307\310\201T&\210\312\201Q\313\201U#\210\300\201V\302\303\201WDD\201X\351\201Y\306\307\310\341&	\210\312\201V\313\342#\210\300\201Z\302\303\201[DD\201\\\306\201]\310\201^&\210\312\201Z\313\201_#\210\300\201`\302\303\201aDD\201b\351\201c\306\307\310\341&	\210\312\201`\313\342#\210\300\201d\302\303\201eDD\201f\306\307\310\201g&\210\312\201d\313\335#\210\300\201h\302\303\201iDD\201j\351\352\306\307\310\201k&	\210\312\201h\313\335#\210\300\201l\302\303\201mDD\201n\306\307\310\201o&\210\312\201l\313\335#\210\300\201p\302\303\201qDD\201r\306\307\310\201s&\210\312\201p\313\335#\210\300\201t\302\303\201uDD\201v\351\201c\306\307\310\341&	\210\312\201t\313\342#\210\300\201w\302\303\201xDD\201y\351\356\306\307\310\366&	\210\312\201w\313\335#\210\300\201z\302\303\201{DD\201|\306\307\310\201}&\210\312\201z\313\335#\210\300\201~\302\303\201DD\201\200\306\307\310\201\201&\210\312\201~\313\335#\210\300\201\202\302\303\201\203DD\201\204\351\201\205\306\201\206\310\341&	\210\312\201\202\313\342#\210\300\201\207\302\303\201\210DD\201\211\306\307\310\201\212&\210\312\201\207\313\335#\210\300\201\213\302\303\201\214DD\201\215\310\201\216\306\201\206&\210\300\201\217\302\303\201\220DD\201\221\306\307\310\201\216&\210\300\201\222\302\303\201\223DD\201\224\306\307\310\201\216&\210\300\201\225\302\303\201\226DD\201\227\306\307\310\201\216&\210\300\201\230\302\303\201\231DD\201\232\306\307\310\201\216&\210\300\201\233\302\303\201\234DD\201\235\306\307\310\201\216&\210\300\201\236\302\303\201\237DD\201\240\306\307\310\201\216&\210\300\201\241\302\303\201\242DD\201\243\351\201c\306\307\310\201\216&	\210\300\201\244\302\303\201\245DD\201\246\351\201c\306\307\310\201\216&	\207" [custom-declare-variable verilog-library-flags funcall function #[0 "\300\207" [(#1="")] 1 #1#] "List of standard Verilog arguments to use for /*AUTOINST*/.\nThese arguments are used to find files for `verilog-auto', and match\nthe flags accepted by a standard Verilog-XL simulator.\n\n    -f filename     Reads absolute `verilog-library-flags' from the filename.\n    -F filename     Reads relative `verilog-library-flags' from the filename.\n    +incdir+dir     Adds the directory to `verilog-library-directories'.\n    -Idir           Adds the directory to `verilog-library-directories'.\n    -y dir          Adds the directory to `verilog-library-directories'.\n    +libext+.v      Adds the extensions to `verilog-library-extensions'.\n    -v filename     Adds the filename to `verilog-library-files'.\n\n    filename        Adds the filename to `verilog-library-files'.\n                    This is not recommended, -v is a better choice.\n\nYou might want these defined in each file; put at the *END* of your file\nsomething like:\n\n    // Local Variables:\n    // verilog-library-flags:(\"-y dir -y otherdir\")\n    // End:\n\nVerilog-mode attempts to detect changes to this local variable, but they\nare only insured to be correct when the file is first visited.  Thus if you\nhave problems, use \\[find-alternate-file] RET to have these take effect.\n\nSee also the variables mentioned above." :group verilog-mode-auto :type (repeat string) put safe-local-variable listp verilog-library-directories #[0 "\300\207" [(".")] 1 #1#] "List of directories when looking for files for /*AUTOINST*/.\nThe directory may be relative to the current file, or absolute.\nEnvironment variables are also expanded in the directory names.\nHaving at least the current directory is a good idea.\n\nYou might want these defined in each file; put at the *END* of your file\nsomething like:\n\n    // Local Variables:\n    // verilog-library-directories:(\".\" \"subdir\" \"subdir2\")\n    // End:\n\nVerilog-mode attempts to detect changes to this local variable, but they\nare only insured to be correct when the file is first visited.  Thus if you\nhave problems, use \\[find-alternate-file] RET to have these take effect.\n\nSee also `verilog-library-flags', `verilog-library-files'\nand `verilog-library-extensions'." (repeat file) verilog-library-files #[0 "\300\207" [nil] 1 #1#] "List of files to search for modules.\nAUTOINST will use this when it needs to resolve a module name.\nThis is a complete path, usually to a technology file with many standard\ncells defined in it.\n\nYou might want these defined in each file; put at the *END* of your file\nsomething like:\n\n    // Local Variables:\n    // verilog-library-files:(\"/some/path/technology.v\" \"/some/path/tech2.v\")\n    // End:\n\nVerilog-mode attempts to detect changes to this local variable, but they\nare only insured to be correct when the file is first visited.  Thus if you\nhave problems, use \\[find-alternate-file] RET to have these take effect.\n\nSee also `verilog-library-flags', `verilog-library-directories'." (repeat directory) verilog-library-extensions #[0 "\300\207" [(".v" ".va" ".sv")] 1 #1#] "List of extensions to use when looking for files for /*AUTOINST*/.\nSee also `verilog-library-flags', `verilog-library-directories'." (repeat string) verilog-active-low-regexp #[0 "\300\207" [nil] 1 #1#] "If true, treat signals matching this regexp as active low.\nThis is used for AUTORESET and AUTOTIEOFF.  For proper behavior,\nyou will probably also need `verilog-auto-reset-widths' set." (choice (const nil) regexp) stringp verilog-auto-sense-include-inputs #[0 "\300\207" [nil] 1 #1#] "Non-nil means AUTOSENSE should include all inputs.\nIf nil, only inputs that are NOT output signals in the same block are\nincluded." boolean verilog-booleanp verilog-auto-sense-defines-constant #[0 "\300\207" [nil] 1 #1#] "Non-nil means AUTOSENSE should assume all defines represent constants.\nWhen true, the defines will not be included in sensitivity lists.  To\nmaintain compatibility with other sites, this should be set at the bottom\nof each Verilog file that requires it, rather than being set globally." verilog-auto-simplify-expressions #[0 "\300\207" [t] 1 #1#] "Non-nil means AUTOs will simplify expressions when calculating bit ranges.\nWhen nil, do not simply ranges, which may simplify the output,\nbut may cause problems when there are multiple instantiations\noutputting to the same wire.  To maintain compatibility with\nother sites, this should be set at the bottom of each Verilog\nfile that requires it, rather than being set globally." :version "27.1" verilog-auto-reset-blocking-in-non #[0 "\300\207" [t] 1 #1#] "Non-nil means AUTORESET will reset blocking statements.\nWhen true, AUTORESET will reset in blocking statements those\nsignals which were assigned with blocking assignments (=) even in\na block with non-blocking assignments (<=).\n\nIf nil, all blocking assigned signals are ignored when any\nnon-blocking assignment is in the AUTORESET block.  This allows\nblocking assignments to be used for temporary values and not have\nthose temporaries reset.  See example in `verilog-auto-reset'." "24.1" verilog-auto-reset-widths #[0 "\300\207" [t] 1 #1#] "True means AUTORESET should determine the width of signals.\nThis is then used to set the width of the zero (32'h0 for example).  This\nis required by some lint tools that aren't smart enough to ignore widths of\nthe constant zero.  This may result in ugly code when parameters determine\nthe MSB or LSB of a signal inside an AUTORESET.\n\nIf nil, AUTORESET uses \"0\" as the constant.\n\nIf `unbased', AUTORESET used the unbased unsized literal \"\\='0\"\nas the constant. This setting is strongly recommended for\nSystemVerilog designs." #[257 "\211\300>\207" [(nil t unbased)] 3 "\n\n(fn X)"] verilog-assignment-delay #[0 "\300\207" [#1#] 1 #1#] "Text used for delays in delayed assignments.  Add a trailing space if set." string verilog-auto-arg-format #[0 "\300\207" [packed] 1 #1#] "Formatting to use for AUTOARG signal names.\nIf `packed', then as many inputs and outputs that fit within\n`fill-column' will be put onto one line.\n\nIf `single', then a single input or output will be put onto each\nline." "25.1" (radio (const :tag "Line up Assignments and Declarations" packed) (const :tag "Line up Assignment statements" single)) #[257 "\211\300>\207" [(packed single)] 3 "\n\n(fn X)"] verilog-auto-arg-sort #[0 "\300\207" [nil] 1 #1#] "Non-nil means AUTOARG signal names will be sorted, not in declaration order.\nDeclaration order is advantageous with order based instantiations\nand is the default for backward compatibility.  Sorted order\nreduces changes when declarations are moved around in a file, and\nit's bad practice to rely on order based instantiations anyhow.\n\nSee also `verilog-auto-inst-sort'." verilog-auto-inst-dot-name #[0 "\300\207" [nil] 1 #1#] "Non-nil means when creating ports with AUTOINST, use .name syntax.\nThis will use \".port\" instead of \".port(port)\" when possible.\nThis is only legal in SystemVerilog files, and will confuse older\nsimulators.  Setting `verilog-auto-inst-vector' to nil may also\nbe desirable to increase how often .name will be used." verilog-auto-inst-param-value #[0 "\300\207" [nil] 1 #1#] "Non-nil means AUTOINST will replace parameters with the parameter value.\nIf nil, leave parameters as symbolic names.\n\nParameters must be in Verilog 2001 format #(...), and if a parameter is not\nlisted as such there (as when the default value is acceptable), it will not\nbe replaced, and will remain symbolic.\n\nFor example, imagine a submodule uses parameters to declare the size of its\ninputs.  This is then used by an upper module:\n\n        module InstModule (o,i);\n           parameter WIDTH;\n           input [WIDTH-1:0] i;\n           parameter type OUT_t;\n           output OUT_t o;\n        endmodule\n\n        module ExampParamVal1;\n           /*AUTOOUTPUT*/\n           // Beginning of automatic outputs\n           output OUT_t o;\n           // End of automatics\n\n           InstModule\n             #(.WIDTH(10),\n               ,.OUT_t(upper_t))\n            instName\n             (/*AUTOINST*/\n              .o        (o),\n              .i        (i[WIDTH-1:0]));\n        endmodule\n\n       // Local Variables:\n       // verilog-typedef-regexp: \"_t$\"\n       // End:\n\nNote even though WIDTH=10, the AUTOINST has left the parameter as\na symbolic name.  Likewise the OUT_t is preserved as the name\nfrom the instantiated module.\n\nIf `verilog-auto-inst-param-value' is set, this will\ninstead expand to:\n\n        module ExampParamVal1;\n           /*AUTOOUTPUT*/\n           // Beginning of automatic outputs\n           output upper_t o;\n           // End of automatics\n\n           InstModule\n             #(.WIDTH(10),\n               ,.OUT_t(upper_t))\n            instName\n             (/*AUTOINST*/\n              .o        (o),\n              .i        (i[9:0]));\n\nNote that the instantiation now has \"i[9:0]\" as the WIDTH\nwas expanded.  Likewise the data type of \"o\" in the AUTOOUTPUT\nis now upper_t, from the OUT_t parameter override.\nThis second expansion of parameter types can be overridden with\n`verilog-auto-inst-param-value-type'." verilog-auto-inst-param-value-type #[0 "\300\207" [t] 1 #1#] "Non-nil means expand parameter type in instantiations.\nIf nil, leave parameter types as symbolic names.\n\nSee `verilog-auto-inst-param-value'." verilog-auto-inst-sort #[0 "\300\207" [nil] 1 #1#] "Non-nil means AUTOINST signals will be sorted, not in declaration order.\nAlso affects AUTOINSTPARAM.  Declaration order is the default for\nbackward compatibility, and as some teams prefer signals that are\ndeclared together to remain together.  Sorted order reduces\nchanges when declarations are moved around in a file.\n\nSee also `verilog-auto-arg-sort'." verilog-auto-inst-vector #[0 "\300\207" [t] 1 #1#] "True means when creating default ports with AUTOINST, use bus subscripts.\nIf nil, skip the subscript when it matches the entire bus as declared in\nthe module (AUTOWIRE signals always are subscripted, you must manually\ndeclare the wire to have the subscripts removed.)  Setting this to nil may\nspeed up some simulators, but is less general and harder to read, so avoid.\nIf `unsigned', use vectors for unsigned types (like using true,\notherwise no vectors if sizes match (like using nil)." (choice (const nil) (const t) (const unsigned)) #[257 "\211\300>\207" [(nil t unsigned)] 3 "\n\n(fn X)"] verilog-auto-inst-template-numbers #[0 "\300\207" [nil] 1 #1#] "If true, when creating templated ports with AUTOINST, add a comment.\n\nIf t, the comment will add the line number of the template that\nwas used for that port declaration.  This setting is suggested\nonly for debugging use, as regular use may cause a large numbers\nof merge conflicts.\n\nIf `lhs', the comment will show the left hand side of the\nAUTO_TEMPLATE rule that is matched.  This is less precise than\nnumbering (t) when multiple rules have the same pin name, but\nwon't merge conflict." (choice (const nil) (const t) (const lhs)) #[257 "\211\300>\207" [(nil t lhs)] 3 "\n\n(fn X)"] verilog-auto-inst-template-required #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating a port with AUTOINST, require a template.\nAny port which does not have a template will be omitted from the\ninstantiation.\n\nIf nil, if a port is not templated it will be inserted to connect\nto a net with the same name as the port." "28.0" verilog-auto-inst-column #[0 "\300\207" [40] 1 #1#] "Indent-to column number for net name part of AUTOINST created pin." verilog-mode-indent integer integerp verilog-auto-inst-interfaced-ports #[0 "\300\207" [nil] 1 #1#] "Non-nil means include interfaced ports in AUTOINST expansions." "24.3" verilog-auto-input-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOINPUT, ignore signals matching this regexp.\nSee the \\[verilog-faq] for examples on using this." (choice (const nil) regexp) verilog-auto-reg-input-assigned-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOINPUTREG, ignore signals matching this regexp." (choice (const nil) regexp) verilog-auto-inout-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOINOUT, ignore signals matching this regexp.\nSee the \\[verilog-faq] for examples on using this." (choice (const nil) regexp) verilog-auto-output-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOOUTPUT, ignore signals matching this regexp.\nSee the \\[verilog-faq] for examples on using this." (choice (const nil) regexp) verilog-auto-template-warn-unused #[0 "\300\207" [nil] 1 #1#] "Non-nil means report warning if an AUTO_TEMPLATE line is not used.\nThis feature is not supported before Emacs 21.1 or XEmacs 21.4." verilog-auto-tieoff-declaration #[0 "\300\207" ["wire"] 1 #1#] "Data type used for the declaration for AUTOTIEOFF.\nIf \"wire\" then create a wire, if \"assign\" create an\nassignment, else the data type for variable creation." verilog-auto-tieoff-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOTIEOFF, ignore signals matching this regexp.\nSee the \\[verilog-faq] for examples on using this." (choice (const nil) regexp) verilog-auto-unused-ignore-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, when creating AUTOUNUSED, ignore signals matching this regexp.\nSee the \\[verilog-faq] for examples on using this." (choice (const nil) regexp) verilog-case-fold #[0 "\300\207" [t] 1 #1#] "Non-nil means `verilog-mode' regexps should ignore case.\nThis variable is t for backward compatibility; nil is suggested." "24.4" verilog-mode verilog-typedef-regexp #[0 "\300\207" [nil] 1 #1#] "If non-nil, regular expression that matches Verilog-2001 typedef names.\nFor example, \"_t$\" matches typedefs named with _t, as in the C language.\nSee also `verilog-case-fold'." (choice (const nil) regexp) verilog-mode-hook #[0 "\300C\207" [verilog-set-compile-command] 1 #1#] "Hook run after Verilog mode is loaded." hook verilog-auto-hook #[0 "\300\207" [nil] 1 #1#] "Hook run after `verilog-mode' updates AUTOs." verilog-before-auto-hook #[0 "\300\207" [nil] 1 #1#] "Hook run before `verilog-mode' updates AUTOs." verilog-delete-auto-hook #[0 "\300\207" [nil] 1 #1#] "Hook run after `verilog-mode' deletes AUTOs." verilog-before-delete-auto-hook #[0 "\300\207" [nil] 1 #1#] "Hook run before `verilog-mode' deletes AUTOs." verilog-getopt-flags-hook #[0 "\300\207" [nil] 1 #1#] "Hook run after `verilog-getopt-flags' determines the Verilog option lists." verilog-before-getopt-flags-hook #[0 "\300\207" [nil] 1 #1#] "Hook run before `verilog-getopt-flags' determines the Verilog option lists." verilog-before-save-font-hook #[0 "\300\207" [nil] 1 #1#] "Hook run before `verilog-save-font-no-change-functions' removes highlighting." verilog-after-save-font-hook #[0 "\300\207" [nil] 1 #1#] "Hook run after `verilog-save-font-no-change-functions' restores highlighting."] 10)
#@69 Imenu expression for Verilog mode.  See `imenu-generic-expression'.
(defvar verilog-imenu-generic-expression '((nil "^\\s-*\\(?:connectmodule\\|m\\(?:odule\\|acromodule\\)\\|p\\(?:rimitive\\|rogram\\|ackage\\)\\)\\s-+\\([a-zA-Z0-9_.:]+\\)" 1) ("*Variables*" "^\\s-*\\(reg\\|wire\\|logic\\)\\s-+\\(\\|\\[[^]]+\\]\\s-+\\)\\([A-Za-z0-9_]+\\)" 3) ("*Classes*" "^\\s-*\\(?:\\(?:virtual\\|interface\\)\\s-+\\)?class\\s-+\\([A-Za-z_][A-Za-z0-9_]+\\)" 1) ("*Tasks*" "^\\s-*\\(?:\\(?:static\\|pure\\|virtual\\|local\\|protected\\)\\s-+\\)*task\\s-+\\(?:\\(?:static\\|automatic\\)\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_:]+\\)" 1) ("*Functions*" "^\\s-*\\(?:\\(?:static\\|pure\\|virtual\\|local\\|protected\\)\\s-+\\)*function\\s-+\\(?:\\(?:static\\|automatic\\)\\s-+\\)?\\(?:\\w+\\s-+\\)?\\(?:\\(?:un\\)signed\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_:]+\\)" 1) ("*Interfaces*" "^\\s-*interface\\s-+\\([a-zA-Z_0-9]+\\)" 1) ("*Types*" "^\\s-*typedef\\s-+.*\\s-+\\([a-zA-Z_0-9]+\\)\\s-*;" 1)) (#$ . 44922))
#@188 If non-nil, dates are written in scientific format (e.g.  1997/09/17).
If nil, in European format (e.g.  17.09.1997).  The brain-dead American
format (e.g.  09/17/1997) is not supported.
(defvar verilog-date-scientific-format nil (#$ . 45907))
#@78 Default name of Company for Verilog header.
If set will become buffer local.
(defvar verilog-company nil (#$ . 46157))
(make-variable-buffer-local 'verilog-company)
#@78 Default name of Project for Verilog header.
If set will become buffer local.
(defvar verilog-project nil (#$ . 46328))
(make-variable-buffer-local 'verilog-project)
#@30 Keymap used in Verilog mode.
(defvar verilog-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\320\321!\204>\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335\336!\203]\336\202^\337#\210\301\340\335\341!\203m\341\202n\342#\210\301\343\344#\210\301\345\346#\210\301\347\350#\210\301\351\352#\210\301\353\354#\210\301\355\356#\210\301\357\360#\210\301\361\362#\210\301\363\364#\210\301\365\366#\210\301\367\370#\210\301\371\372#\210\301\373\374#\210\301\375\376#\210\301\377\201@#\210\301\201A\201B#\210\301\201C\201D#\210\301\201E\201F#\210\207" [make-sparse-keymap define-key ";" electric-verilog-semi [(control 59)] electric-verilog-semi-with-comment ":" electric-verilog-colon "`" electric-verilog-tick "	" electric-verilog-tab "
" electric-verilog-terminate-line [backspace] backward-delete-char-untabify boundp delete-key-deletes-forward [delete] delete-char [(meta delete)] kill-word "\202" electric-verilog-backward-sexp "\206" electric-verilog-forward-sexp "\215" electric-verilog-terminate-and-indent "\211" fboundp completion-at-point verilog-complete-word "\277" completion-help-at-point verilog-show-completions "`" verilog-lint-off "*" verilog-delete-auto-star-implicit "?" verilog-diff-auto "" verilog-label-be "	" verilog-pretty-declarations "=" verilog-pretty-expr "" verilog-submit-bug-report "/" verilog-star-comment "" verilog-comment-region "" verilog-uncomment-region "" verilog-goto-defun "" verilog-delete-auto "" verilog-auto "" verilog-auto-save-compile "" verilog-preprocess "" verilog-inject-auto "" verilog-expand-vector "" verilog-header] 6) (#$ . 46499))
#@24 Menu for Verilog mode.
(defvar verilog-menu nil (#$ . 48306))
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\314\315\311\316\317\320\321\322\323\324\325\326\327!\203!\327\202\"\330\331BB\"\332BBBBBBBBBBBBBBBB!$\207" [verilog-mode-map easy-menu-do-define verilog-menu "Menu for Verilog mode." verilog-easy-menu-filter "Verilog" ("Choose Compilation Action" ["None" (progn (setq verilog-tool nil) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool nil) :help "When invoking compilation, use compile-command"] ["Lint" (progn (setq verilog-tool 'verilog-linter) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool 'verilog-linter) :help "When invoking compilation, use lint checker"] ["Coverage" (progn (setq verilog-tool 'verilog-coverage) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool 'verilog-coverage) :help "When invoking compilation, annotate for coverage"] ["Simulator" (progn (setq verilog-tool 'verilog-simulator) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool 'verilog-simulator) :help "When invoking compilation, interpret Verilog source"] ["Compiler" (progn (setq verilog-tool 'verilog-compiler) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool 'verilog-compiler) :help "When invoking compilation, compile Verilog source"] ["Preprocessor" (progn (setq verilog-tool 'verilog-preprocessor) (verilog-set-compile-command)) :style radio :selected (equal verilog-tool 'verilog-preprocessor) :help "When invoking compilation, preprocess Verilog source, see also `verilog-preprocess'"]) ("Move" ["Beginning of function" verilog-beg-of-defun :keys "C-M-a" :help "Move backward to the beginning of the current function or procedure"] ["End of function" verilog-end-of-defun :keys "C-M-e" :help "Move forward to the end of the current function or procedure"] ["Mark function" verilog-mark-defun :keys "C-M-h" :help "Mark the current Verilog function or procedure"] ["Goto function/module" verilog-goto-defun :help "Move to specified Verilog module/task/function"] ["Move to beginning of block" electric-verilog-backward-sexp :help "Move backward over one balanced expression"] ["Move to end of block" electric-verilog-forward-sexp :help "Move forward over one balanced expression"]) ("Comments" ["Comment Region" verilog-comment-region :help "Put marked area into a comment"] ["UnComment Region" verilog-uncomment-region :help "Uncomment an area commented with Comment Region"] ["Multi-line comment insert" verilog-star-comment :help "Insert Verilog /* */ comment at point"] ["Lint error to comment" verilog-lint-off :help "Convert a Verilog linter warning line into a disable statement"]) "----" ["Compile" compile :help "Perform compilation-action (above) on the current buffer"] ["AUTO, Save, Compile" verilog-auto-save-compile :help "Recompute AUTOs, save buffer, and compile"] ["Next Compile Error" next-error :help "Visit next compilation error message and corresponding source code"] ["Ignore Lint Warning at point" verilog-lint-off :help "Convert a Verilog linter warning line into a disable statement"] ["Line up declarations around point" verilog-pretty-declarations :help "Line up declarations around point"] ["Line up equations around point" verilog-pretty-expr :help "Line up expressions around point"] ["Redo/insert comments on every end" verilog-label-be :help "Label matching begin ... end statements"] ["Expand [x:y] vector line" verilog-expand-vector :help "Take a signal vector on the current line and expand it to multiple lines"] ["Insert begin-end block" verilog-insert-block :help "Insert begin ... end"] apply vector "Complete word" fboundp completion-at-point verilog-complete-word (:help "Complete word at point") ("----" ["Recompute AUTOs" verilog-auto :help "Expand AUTO meta-comment statements"] ["Kill AUTOs" verilog-delete-auto :help "Remove AUTO expansions"] ["Diff AUTOs" verilog-diff-auto :help "Show differences in AUTO expansions"] ["Inject AUTOs" verilog-inject-auto :help "Inject AUTOs into legacy non-AUTO buffer"] ("AUTO Help..." ["AUTO General" (describe-function 'verilog-auto) :help "Help introduction on AUTOs"] ["AUTO Library Flags" (describe-variable 'verilog-library-flags) :help "Help on verilog-library-flags"] ["AUTO Library Path" (describe-variable 'verilog-library-directories) :help "Help on verilog-library-directories"] ["AUTO Library Files" (describe-variable 'verilog-library-files) :help "Help on verilog-library-files"] ["AUTO Library Extensions" (describe-variable 'verilog-library-extensions) :help "Help on verilog-library-extensions"] ["AUTO `define Reading" (describe-function 'verilog-read-defines) :help "Help on reading `defines"] ["AUTO `include Reading" (describe-function 'verilog-read-includes) :help "Help on parsing `includes"] ["AUTOARG" (describe-function 'verilog-auto-arg) :help "Help on AUTOARG - declaring module port list"] ["AUTOASCIIENUM" (describe-function 'verilog-auto-ascii-enum) :help "Help on AUTOASCIIENUM - creating ASCII for enumerations"] ["AUTOASSIGNMODPORT" (describe-function 'verilog-auto-assign-modport) :help "Help on AUTOASSIGNMODPORT - creating assignments to/from modports"] ["AUTOINOUT" (describe-function 'verilog-auto-inout) :help "Help on AUTOINOUT - adding inouts from cells"] ["AUTOINOUTCOMP" (describe-function 'verilog-auto-inout-comp) :help "Help on AUTOINOUTCOMP - copying complemented i/o from another file"] ["AUTOINOUTIN" (describe-function 'verilog-auto-inout-in) :help "Help on AUTOINOUTIN - copying i/o from another file as all inputs"] ["AUTOINOUTMODPORT" (describe-function 'verilog-auto-inout-modport) :help "Help on AUTOINOUTMODPORT - copying i/o from an interface modport"] ["AUTOINOUTMODULE" (describe-function 'verilog-auto-inout-module) :help "Help on AUTOINOUTMODULE - copying i/o from another file"] ["AUTOINOUTPARAM" (describe-function 'verilog-auto-inout-param) :help "Help on AUTOINOUTPARAM - copying parameters from another file"] ["AUTOINPUT" (describe-function 'verilog-auto-input) :help "Help on AUTOINPUT - adding inputs from cells"] ["AUTOINSERTLISP" (describe-function 'verilog-auto-insert-lisp) :help "Help on AUTOINSERTLISP - insert text from a lisp function"] ["AUTOINSERTLAST" (describe-function 'verilog-auto-insert-last) :help "Help on AUTOINSERTLISPLAST - insert text from a lisp function"] ["AUTOINST" (describe-function 'verilog-auto-inst) :help "Help on AUTOINST - adding pins for cells"] ["AUTOINST (.*)" (describe-function 'verilog-auto-star) :help "Help on expanding Verilog-2001 .* pins"] ["AUTOINSTPARAM" (describe-function 'verilog-auto-inst-param) :help "Help on AUTOINSTPARAM - adding parameter pins to cells"] ["AUTOLOGIC" (describe-function 'verilog-auto-logic) :help "Help on AUTOLOGIC - declaring logic signals"] ["AUTOOUTPUT" (describe-function 'verilog-auto-output) :help "Help on AUTOOUTPUT - adding outputs from cells"] ["AUTOOUTPUTEVERY" (describe-function 'verilog-auto-output-every) :help "Help on AUTOOUTPUTEVERY - adding outputs of all signals"] ["AUTOREG" (describe-function 'verilog-auto-reg) :help "Help on AUTOREG - declaring registers for non-wires"] ["AUTOREGINPUT" (describe-function 'verilog-auto-reg-input) :help "Help on AUTOREGINPUT - declaring inputs for non-wires"] ["AUTORESET" (describe-function 'verilog-auto-reset) :help "Help on AUTORESET - resetting always blocks"] ["AUTOSENSE or AS" (describe-function 'verilog-auto-sense) :help "Help on AUTOSENSE - sensitivity lists for always blocks"] ["AUTOTIEOFF" (describe-function 'verilog-auto-tieoff) :help "Help on AUTOTIEOFF - tying off unused outputs"] ["AUTOUNDEF" (describe-function 'verilog-auto-undef) :help "Help on AUTOUNDEF - undefine all local defines"] ["AUTOUNUSED" (describe-function 'verilog-auto-unused) :help "Help on AUTOUNUSED - terminating unused inputs"] ["AUTOWIRE" (describe-function 'verilog-auto-wire) :help "Help on AUTOWIRE - declaring wires for cells"]) "----" ["Submit bug report" verilog-submit-bug-report :help "Submit via mail a bug report on verilog-mode.el"] ["Version and FAQ" verilog-faq :help "Show the current version, and where to get the FAQ etc"] ["Customize Verilog Mode..." verilog-customize :help "Customize variables and other settings used by Verilog-Mode"] ["Customize Verilog Fonts & Colors" verilog-font-customize :help "Customize fonts used by Verilog-Mode."])] 25)
#@42 Menu for statement templates in Verilog.
(defvar verilog-stmt-menu nil (#$ . 56694))
(byte-code "\301\302\303\304\305!$\207" [verilog-mode-map easy-menu-do-define verilog-stmt-menu "Menu for statement templates in Verilog." verilog-easy-menu-filter ("Statements" ["Header" verilog-sk-header :help "Insert a header block at the top of file"] ["Comment" verilog-sk-comment :help "Insert a comment block"] "----" ["Module" verilog-sk-module :help "Insert a module .. (/*AUTOARG*/);.. endmodule block"] ["OVM Class" verilog-sk-ovm-class :help "Insert an OVM class block"] ["UVM Object" verilog-sk-uvm-object :help "Insert an UVM object block"] ["UVM Component" verilog-sk-uvm-component :help "Insert an UVM component block"] ["Primitive" verilog-sk-primitive :help "Insert a primitive .. (.. );.. endprimitive block"] "----" ["Input" verilog-sk-input :help "Insert an input declaration"] ["Output" verilog-sk-output :help "Insert an output declaration"] ["Inout" verilog-sk-inout :help "Insert an inout declaration"] ["Wire" verilog-sk-wire :help "Insert a wire declaration"] ["Reg" verilog-sk-reg :help "Insert a register declaration"] ["Define thing under point as a register" verilog-sk-define-signal :help "Define signal under point as a register at the top of the module"] "----" ["Initial" verilog-sk-initial :help "Insert an initial begin .. end block"] ["Always" verilog-sk-always :help "Insert an always @(AS) begin .. end block"] ["Function" verilog-sk-function :help "Insert a function .. begin .. end endfunction block"] ["Task" verilog-sk-task :help "Insert a task .. begin .. end endtask block"] ["Specify" verilog-sk-specify :help "Insert a specify .. endspecify block"] ["Generate" verilog-sk-generate :help "Insert a generate .. endgenerate block"] "----" ["Begin" verilog-sk-begin :help "Insert a begin .. end block"] ["If" verilog-sk-if :help "Insert an if (..) begin .. end block"] ["(if) else" verilog-sk-else-if :help "Insert an else if (..) begin .. end block"] ["For" verilog-sk-for :help "Insert a for (...) begin .. end block"] ["While" verilog-sk-while :help "Insert a while (...) begin .. end block"] ["Fork" verilog-sk-fork :help "Insert a fork begin .. end .. join block"] ["Repeat" verilog-sk-repeat :help "Insert a repeat (..) begin .. end block"] ["Case" verilog-sk-case :help "Insert a case block, prompting for details"] ["Casex" verilog-sk-casex :help "Insert a casex (...) item: begin.. end endcase block"] ["Casez" verilog-sk-casez :help "Insert a casez (...) item: begin.. end endcase block"])] 6)
#@46 Abbrev table in use in Verilog-mode buffers.
(defvar verilog-mode-abbrev-table nil (#$ . 59234))
(byte-code "\301\300\302\303\304\305\306\307&\210\310\311\312\313$\210\310\314\312\315$\210\310\316\302\317$\210\310\320\312\321$\210\310\322\312\323$\210\310\324\312\325$\210\310\326\312\327$\210\310\330\312\331$\210\310\332\312\333$\210\310\334\312\335$\210\310\336\312\337$\210\310\340\312\341$\210\310\342\312\343$\210\310\344\312\345$\210\310\346\312\347$\210\310\350\312\351$\210\310\352\312\353$\210\310\354\312\355$\210\310\356\312\357$\210\310\360\312\361$\210\310\362\312\363$\210\310\364\312\365$\210\310\366\312\367$\210\310\370\312\371$\210\310\372\312\373$\207" [verilog-mode-abbrev-table verilog-define-abbrev-table nil "Abbrev table for Verilog mode skeletons." :case-fixed t :enable-function #[0 "\300 ?\207" [verilog-in-comment-or-string-p] 1] verilog-define-abbrev "class" "" verilog-sk-ovm-class "always" verilog-sk-always "begin" verilog-sk-begin "case" verilog-sk-case "for" verilog-sk-for "generate" verilog-sk-generate "initial" verilog-sk-initial "fork" verilog-sk-fork "module" verilog-sk-module "primitive" verilog-sk-primitive "repeat" verilog-sk-repeat "specify" verilog-sk-specify "task" verilog-sk-task "while" verilog-sk-while "casex" verilog-sk-casex "casez" verilog-sk-casez "if" verilog-sk-if "else if" verilog-sk-else-if "assign" verilog-sk-assign "function" verilog-sk-function "input" verilog-sk-input "output" verilog-sk-output "inout" verilog-sk-inout "wire" verilog-sk-wire "reg" verilog-sk-reg] 8)
(defalias 'verilog-within-string #[0 "\300\301\302 `\"8\207" [3 parse-partial-sexp line-beginning-position] 4])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-within-string speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@280 Like `string-match', but use `verilog-case-fold'.
Return index of start of first match for REGEXP in STRING, or nil.
Matching ignores case if `verilog-case-fold' is non-nil.
If third arg START is non-nil, start search at that index in STRING.

(fn REGEXP STRING &optional START)
(defalias 'verilog-string-match-fold #[770 "\302#)\207" [verilog-case-fold case-fold-search string-match] 7 (#$ . 61063)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-string-match-fold speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@317 Replace occurrences of FROM-STRING with TO-STRING.
FIXEDCASE and LITERAL as in `replace-match'.  STRING is what to replace.
The case (verilog-string-replace-matches "o" "oo" nil nil "foobar")
will break, as the o's continuously replace.  xa -> x works ok though.

(fn FROM-STRING TO-STRING FIXEDCASE LITERAL STRING)
(defalias 'verilog-string-replace-matches #[1285 "\300\301#\203 \302$\262G\300\224G\\^\262\202\207" [0 string-match replace-match] 11 (#$ . 61628)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-string-replace-matches speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@48 Remove spaces surrounding STRING.

(fn STRING)
(defalias 'verilog-string-remove-spaces #[257 "\300 \301\302\"\216\303\304\305\211\306\307#\203,\310$\262G\306\224G\\^\262\202
\266\206\262\311\304\305\211\306\307#\203V\310$\262G\306\224G\\^\262\2027\266\206\262)\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "^\\s-+" "" nil 0 string-match replace-match "\\s-+$"] 13 (#$ . 62272)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-string-remove-spaces speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@99 Like `re-search-forward', but skips over match in comments or strings.

(fn REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-forward #[771 "\300\301#\203'\302 \211\262\203'\303 \203'\304\262\203#`W\202$\305\204\306!\210\307\225\207" [(nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data 0] 8 (#$ . 62892)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-forward speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@100 Like `re-search-backward', but skips over match in comments or strings.

(fn REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-backward #[771 "\300\301#\203'\302 \211\262\203'\303 \203'\304\262\203#`V\202$\305\204\306!\210\307\225\207" [(nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0] 8 (#$ . 63428)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-backward speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@307 Like `verilog-re-search-forward', including use of REGEXP BOUND and NOERROR,
but trashes match data and is faster for REGEXP that doesn't match often.
This uses `verilog-scan' and text properties to ignore comments,
so there may be a large up front penalty for the first search.

(fn REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-forward-quick #[771 "\300\211\204$\301#\203$\302\303\224!\203\301\304\300\305#\210\202\303\225\262\202\207" [nil re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" t] 8 (#$ . 63969)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-forward-quick speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@308 Like `verilog-re-search-backward', including use of REGEXP BOUND and NOERROR,
but trashes match data and is faster for REGEXP that doesn't match often.
This uses `verilog-scan' and text properties to ignore comments,
so there may be a large up front penalty for the first search.

(fn REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-backward-quick #[771 "\300\211\204$\301#\203$\302\303\224!\203\301\304\300\305#\210\202\303\224\262\202\207" [nil re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t] 8 (#$ . 64678)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-backward-quick speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@276 Like `re-search-forward', but first search for SUBSTR constant.
Then searched for the normal REGEXP (which contains SUBSTR), with given
BOUND and NOERROR.  The REGEXP must fit within a single line.
This speeds up complicated regexp matches.

(fn SUBSTR REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-forward-substr #[1028 "\300\211\204.\301#\203.\212\302 \210\303\304 #\262)\305\224`X\203(\305\225`Y\204\300\262\202\211\2035\211b\210\207" [nil search-forward beginning-of-line re-search-forward line-end-position 0] 9 (#$ . 65389)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-forward-substr speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@277 Like `re-search-backward', but first search for SUBSTR constant.
Then searched for the normal REGEXP (which contains SUBSTR), with given
BOUND and NOERROR.  The REGEXP must fit within a single line.
This speeds up complicated regexp matches.

(fn SUBSTR REGEXP BOUND NOERROR)
(defalias 'verilog-re-search-backward-substr #[1028 "\300\211\204.\301#\203.\212\300\210\302\303 #\262)\304\224`X\203(\304\225`Y\204\300\262\202\211\2035\211b\210\207" [nil search-backward re-search-backward line-beginning-position 0] 9 (#$ . 66106)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-re-search-backward-substr speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@242 Delete trailing spaces or tabs, but not newlines nor linefeeds.
Also add missing final newline.

To call this from the command line, see \[verilog-batch-diff-auto].

To call on \[verilog-auto], set `verilog-auto-delete-trailing-whitespace'.
(defalias 'verilog-delete-trailing-whitespace #[0 "\212eb\210\300\301\302\303#\203\304\305\302\211#\210\202db\210n?\205\306c)\207" [re-search-forward "[ 	]+$" nil t replace-match "" "\n"] 4 (#$ . 66816)])
#@1088 Function to compute shell command to compile Verilog.

This reads `verilog-tool' and sets `compile-command'.  This specifies the
program that executes when you type \[compile] or
\[verilog-auto-save-compile].

By default `verilog-tool' uses a Makefile if one exists in the
current directory.  If not, it is set to the `verilog-linter',
`verilog-compiler', `verilog-coverage', `verilog-preprocessor',
or `verilog-simulator' variables, as selected with the Verilog ->
"Choose Compilation Action" menu.

You should set `verilog-tool' or the other variables to the path and
arguments for your Verilog simulator.  For example:
    "vcs -p123 -O"
or a string like:
    "(cd /tmp; surecov %s)".

In the former case, the path to the current buffer is concat'ed to the
value of `verilog-tool'; in the later, the path to the current buffer is
substituted for the %s.

Where __FLAGS__ appears in the string `verilog-current-flags'
will be substituted.

Where __FILE__ appears in the string, the variable
`buffer-file-name' of the current buffer, without the directory
portion, will be substituted.
(defalias 'verilog-set-compile-command #[0 "\303\304!\204\f\303\305!\203\306\300!\210\307\202@\306\300!\210	\203>	J\310\311\"\2031\312\n\206-\313\"\2029\211\314\n\2068\313Q\262\202?\313\315 \207" [compile-command verilog-tool buffer-file-name file-exists-p "makefile" "Makefile" make-local-variable "make " string-match "%s" format "" " " verilog-modify-compile-command] 4 (#$ . 67276) nil])
#@272 Replace meta-information in COMMAND and return it.
Where __FLAGS__ appears in the string `verilog-current-flags'
will be substituted.  Where __FILE__ appears in the string, the
current buffer's file-name, without the directory portion, will
be substituted.

(fn COMMAND)
(defalias 'verilog-expand-command #[257 "\300\301 \302\211\303\304#\203&\305$\262G\303\224G\\^\262\202\266\206\262\306\307\310 \2063\311!\302\211\303\304#\203W\305$\262G\303\224G\\^\262\2028\207" ["\\b__FLAGS__\\b" verilog-current-flags t 0 string-match replace-match "\\b__FILE__\\b" file-name-nondirectory buffer-file-name ""] 12 (#$ . 68777)])
#@58 Update `compile-command' using `verilog-expand-command'.
(defalias 'verilog-modify-compile-command #[0 ";\205/\303\301!\203	\232\203\n\304\305\"\205/\306\302!\210\306\300!\210\307!\306\301!\210\211\207" [compile-command verilog-compile-command-post-mod verilog-compile-command-pre-mod boundp string-match "\\b\\(__FLAGS__\\|__FILE__\\)\\b" make-local-variable verilog-expand-command] 3 (#$ . 69438)])
#@123 Tell Emacs compile that we are Verilog.
Called by `compilation-mode-hook'.  This allows \[next-error] to
find the errors.
(defalias 'verilog-error-regexp-add-emacs #[0 "\302\300!\205\303\236?\205\304\305	\"\207" [compilation-error-regexp-alist-alist verilog-error-regexp-emacs-alist boundp verilog-xl-1 mapc #[257 "\211@B\211	B\211\207" [compilation-error-regexp-alist compilation-error-regexp-alist-alist] 3 "\n\n(fn ITEM)"]] 3 (#$ . 69862) nil])
(add-hook 'compilation-mode-hook 'verilog-error-regexp-add-emacs)
#@38 List of Verilog compiler directives.
(defconst verilog-compiler-directives '("`__FILE__" "`__LINE" "`begin_keywords" "`celldefine" "`default_nettype" "`define" "`else" "`elsif" "`end_keywords" "`endcelldefine" "`endif" "`ifdef" "`ifndef" "`include" "`line" "`nounconnected_drive" "`pragma" "`resetall" "`timescale" "`unconnected_drive" "`undef" "`undefineall" "`case" "`default" "`endfor" "`endprotect" "`endswitch" "`endwhile" "`for" "`format" "`if" "`let" "`protect" "`switch" "`time_scale" "`uselib" "`while") (#$ . 70390))
(defconst verilog-directive-re (verilog-regexp-words verilog-compiler-directives))
(defconst verilog-directive-re-1 (concat "[ 	]*" verilog-directive-re))
(defconst verilog-directive-begin "\\<`\\(for\\|i\\(f\\|fdef\\|fndef\\)\\|switch\\|while\\)\\>")
(defconst verilog-directive-middle "\\<`\\(else\\|elsif\\|default\\|case\\)\\>")
(defconst verilog-directive-end "`\\(endfor\\|endif\\|endswitch\\|endwhile\\)\\>")
(defconst verilog-ovm-begin-re "\\(?:`ovm_\\(?:\\(?:component\\(?:_param\\)?\\|field\\|object\\(?:_param\\)?\\|sequencer?\\)_utils_begin\\)\\)")
(defconst verilog-ovm-end-re "\\(?:`ovm_\\(?:\\(?:component\\|field\\|object\\|sequencer?\\)_utils_end\\)\\)")
(defconst verilog-uvm-begin-re "\\(?:`uvm_\\(?:\\(?:component\\(?:_param\\)?\\|field\\|object\\(?:_param\\)?\\|sequencer?\\)_utils_begin\\)\\)")
(defconst verilog-uvm-end-re "\\(?:`uvm_\\(?:\\(?:component\\|field\\|object\\|sequencer?\\)_utils_end\\)\\)")
(defconst verilog-vmm-begin-re "\\(?:`vmm_\\(?:\\(?:data\\|env\\|s\\(?:cenario\\|ubenv\\)\\|xactor\\)_member_begin\\)\\)")
(defconst verilog-vmm-end-re "\\(?:`vmm_\\(?:\\(?:data\\|env\\|s\\(?:cenario\\|ubenv\\)\\|xactor\\)_member_end\\)\\)")
(defconst verilog-vmm-statement-re "`vmm_\\(data\\|env\\|scenario\\|subenv\\|xactor\\)_member_\\(scalar\\|string\\|enum\\|vmm_data\\|channel\\|xactor\\|subenv\\|user_defined\\)\\(_array\\)?")
(defconst verilog-ovm-statement-re "\\(?:`\\(?:DUT_ERROR\\|MESSAGE\\|dut_error\\|message\\|ovm_\\(?:analysis_imp_decl\\|blocking_\\(?:\\(?:get\\(?:_peek\\)?\\|master\\|p\\(?:eek\\|ut\\)\\|slave\\|transport\\)_imp_decl\\)\\|c\\(?:omponent_\\(?:registry\\(?:_param\\)?\\|utils\\)\\|reate\\(?:_seq\\)?\\)\\|d\\(?:eclare_sequence_lib\\|o\\(?:_\\(?:seq\\(?:_with\\)?\\|with\\)\\)?\\)\\|error\\|f\\(?:atal\\|i\\(?:eld_\\(?:a\\(?:a_\\(?:int_\\(?:byte\\(?:_unsigned\\)?\\|int\\(?:_unsigned\\|eger\\(?:_unsigned\\)?\\)?\\|key\\|longint\\(?:_unsigned\\)?\\|s\\(?:hortint\\(?:_unsigned\\)?\\|tring\\)\\)\\|object_\\(?:int\\|string\\)\\|string_\\(?:int\\|string\\)\\)\\|rray_\\(?:int\\|object\\|string\\)\\)\\|e\\(?:num\\|vent\\)\\|int\\|object\\|queue_\\(?:int\\|object\\|string\\)\\|s\\(?:array_int\\|tring\\)\\|utils\\)\\|le\\)\\)\\|get_\\(?:\\(?:peek_\\)?imp_decl\\)\\|info[1-4]?\\|line\\|m\\(?:\\(?:aster_imp_dec\\|sg_detai\\)l\\)\\|non\\(?:\\(?:_blocking_transport\\|blocking_\\(?:get\\(?:_peek\\)?\\|master\\|p\\(?:eek\\|ut\\)\\|slave\\)\\)_imp_decl\\)\\|object_\\(?:registry\\(?:_param\\)?\\|utils\\)\\|p\\(?:eek_imp_decl\\|hase_\\(?:\\(?:func\\|task\\)_decl\\)\\|rint_\\(?:a\\(?:a_\\(?:int_object\\|string_\\(?:int\\|object\\|string\\)\\)\\|rray_\\(?:int\\|object\\|string\\)\\)\\|object_queue\\|queue_int\\|string_queue\\)\\|ut_imp_decl\\)\\|rand_send\\(?:_with\\)?\\|s\\(?:e\\(?:nd\\|quence_utils\\)\\|lave_imp_decl\\)\\|transport_imp_decl\\|update_sequence_lib\\(?:_and_item\\)?\\|warning\\)\\|static_\\(?:dut_error\\|message\\)\\)\\)")
(defconst verilog-uvm-statement-re "\\(?:`uvm_\\(?:analysis_imp_decl\\|blocking_\\(?:\\(?:get\\(?:_peek\\)?\\|master\\|p\\(?:eek\\|ut\\)\\|slave\\|transport\\)_imp_decl\\)\\|c\\(?:omponent_\\(?:param_utils\\|registry\\(?:_param\\)?\\|utils\\)\\|reate\\(?:_\\(?:on\\|seq\\)\\)?\\)\\|d\\(?:eclare_\\(?:p_sequencer\\|sequence_lib\\)\\|o\\(?:_\\(?:callbacks\\(?:_exit_on\\)?\\|o\\(?:bj_callbacks\\(?:_exit_on\\)?\\|n\\(?:_\\(?:pri\\(?:_with\\)?\\|with\\)\\)?\\)\\|pri\\(?:_with\\)?\\|seq\\(?:_with\\)?\\|with\\)\\)?\\)\\|error\\(?:_context\\)?\\|f\\(?:atal\\(?:_context\\)?\\|i\\(?:eld_\\(?:a\\(?:a_\\(?:int_\\(?:byte\\(?:_unsigned\\)?\\|enum\\|int\\(?:_unsigned\\|eger\\(?:_unsigned\\)?\\)?\\|key\\|longint\\(?:_unsigned\\)?\\|s\\(?:hortint\\(?:_unsigned\\)?\\|tring\\)\\)\\|object_\\(?:int\\|string\\)\\|string_\\(?:int\\|string\\)\\)\\|rray_\\(?:enum\\|int\\|object\\|string\\)\\)\\|e\\(?:num\\|vent\\)\\|int\\|object\\|queue_\\(?:enum\\|int\\|object\\|string\\)\\|real\\|s\\(?:array_\\(?:enum\\|int\\|object\\|string\\)\\|tring\\)\\|utils\\)\\|le\\)\\)\\|get_\\(?:\\(?:peek_\\)?imp_decl\\)\\|info\\(?:_context\\)?\\|line\\|master_imp_decl\\|non\\(?:\\(?:_blocking_transport\\|blocking_\\(?:get\\(?:_peek\\)?\\|master\\|p\\(?:eek\\|ut\\)\\|slave\\|transport\\)\\)_imp_decl\\)\\|object_\\(?:param_utils\\|registry\\(?:_param\\)?\\|utils\\)\\|p\\(?:ack_\\(?:arrayN?\\|enumN?\\|intN?\\|queueN?\\|real\\|s\\(?:arrayN?\\|tring\\)\\)\\|\\(?:eek\\|ut\\)_imp_decl\\)\\|r\\(?:and_send\\(?:_\\(?:pri\\(?:_with\\)?\\|with\\)\\)?\\|e\\(?:cord_\\(?:attribute\\|field\\)\\|gister_cb\\)\\)\\|s\\(?:e\\(?:nd\\(?:_pri\\)?\\|quence_utils\\|t_super_type\\)\\|lave_imp_decl\\)\\|transport_imp_decl\\|u\\(?:npack_\\(?:arrayN?\\|enumN?\\|intN?\\|queueN?\\|real\\|s\\(?:arrayN?\\|tring\\)\\)\\|pdate_sequence_lib\\(?:_and_item\\)?\\)\\|warning\\(?:_context\\)?\\)\\)")
(defconst verilog-symbol-re "\\<[a-zA-Z_][a-zA-Z_0-9.]*\\>")
(defconst verilog-assignment-operator-re "\\(!=[=?]?\\|#\\(?:[=-]#\\)\\|%=\\|&=\\|\\*=\\|\\+=\\|-\\(?:>>\\|[=>]\\)\\|/=\\|:[/=]\\|<\\(?:->\\|\\(?:<<?\\)?=\\)\\|=\\(?:=[=?]?\\)?\\|>\\(?:\\(?:>>?\\)?=\\)\\|\\^=\\||\\(?:->\\|=>?\\)\\)")
(defconst verilog-assignment-operation-re (concat "\\(^.*?\\)\\B" verilog-assignment-operator-re "\\B"))
(defconst verilog-label-re (concat verilog-symbol-re "\\s-*:\\s-*"))
(defconst verilog-property-re (concat "\\(" verilog-label-re "\\)?\\(\\(assert\\|assume\\|cover\\)\\>\\s-+\\<property\\>\\)\\|\\(assert\\)"))
(defconst verilog-no-indent-begin-re "\\<\\(a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\)\\|do\\|else\\|f\\(?:inal\\|or\\(?:e\\(?:ach\\|ver\\)\\)?\\)\\|i\\(?:f\\|nitial\\)\\|repeat\\|while\\)\\>")
(defconst verilog-ends-re "\\(\\<else\\>\\)\\|\\(\\<if\\>\\)\\|\\(\\<assert\\>\\)\\|\\(\\<end\\>\\)\\|\\(\\<endcase\\>\\)\\|\\(\\<endfunction\\>\\)\\|\\(\\<endtask\\>\\)\\|\\(\\<endspecify\\>\\)\\|\\(\\<endtable\\>\\)\\|\\(\\<endgenerate\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)\\|\\(\\<endclass\\>\\)\\|\\(\\<endgroup\\>\\)\\|\\(\\<`vmm_data_member_end\\>\\)\\|\\(\\<`vmm_env_member_end\\>\\)\\|\\(\\<`vmm_scenario_member_end\\>\\)\\|\\(\\<`vmm_subenv_member_end\\>\\)\\|\\(\\<`vmm_xactor_member_end\\>\\)\\|\\(\\<`ovm_component_utils_end\\>\\)\\|\\(\\<`ovm_field_utils_end\\>\\)\\|\\(\\<`ovm_object_utils_end\\>\\)\\|\\(\\<`ovm_sequence_utils_end\\>\\)\\|\\(\\<`ovm_sequencer_utils_end\\>\\)\\(\\<`uvm_component_utils_end\\>\\)\\|\\(\\<`uvm_field_utils_end\\>\\)\\|\\(\\<`uvm_object_utils_end\\>\\)\\|\\(\\<`uvm_sequence_utils_end\\>\\)\\|\\(\\<`uvm_sequencer_utils_end\\>\\)")
(defconst verilog-auto-end-comment-lines-re (concat "\\(" verilog-directive-re "\\)\\|\\(\\<\\(begin\\|connectmodule\\|e\\(?:lse\\|nd\\(?:c\\(?:ase\\|l\\(?:ass\\|ocking\\)\\|onnectmodule\\)\\|function\\|group\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|o\\(?:gram\\|perty\\)\\)\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\)?\\)\\|interface\\|join\\(?:_\\(?:any\\|none\\)\\)?\\|\\(?:m\\(?:\\(?:acrom\\)?odul\\)\\|p\\(?:ackag\\|rimitiv\\)\\)e\\)\\>\\)"))
(defconst verilog-end-block-ordered-re "\\(\\<endcase\\>\\)\\|\\(\\<end\\>\\)\\|\\(\\<end\\(\\(function\\)\\|\\(task\\)\\|\\(module\\)\\|\\(primitive\\)\\|\\(interface\\)\\|\\(package\\)\\|\\(class\\)\\|\\(group\\)\\|\\(program\\)\\|\\(sequence\\)\\|\\(clocking\\)\\|\\(property\\)\\|\\(connectmodule\\)\\|\\)\\>\\)")
(defconst verilog-end-block-re "\\<\\(`\\(?:\\(?:ovm_\\(?:\\(?:component\\|field\\|object\\|sequencer?\\)_utils\\)\\|uvm_\\(?:\\(?:component\\|field\\|object\\|sequencer?\\)_utils\\)\\|vmm_\\(?:\\(?:data\\|env\\|s\\(?:cenario\\|ubenv\\)\\|xactor\\)_member\\)\\)_end\\)\\|end\\(?:c\\(?:ase\\|l\\(?:ass\\|ocking\\)\\)\\|function\\|g\\(?:enerate\\|roup\\)\\|interface\\|p\\(?:ackage\\|ro\\(?:gram\\|perty\\)\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\)?\\|join\\(?:_\\(?:any\\|none\\)\\)?\\)\\>")
(defconst verilog-endcomment-reason-re (concat "\\(\\<begin\\>\\)\\|\\(\\<else\\>\\)\\|\\(\\<end\\>\\s-+\\<else\\>\\)\\|\\(\\<always\\(?:_ff\\)?\\>\\(?:[ 	]*@\\)\\)\\|\\(\\<always\\(?:_comb\\|_latch\\)?\\>\\)\\|\\(\\<analog\\>\\)\\|\\(\\<fork\\>\\)\\|\\(\\<if\\>\\)\\|" verilog-property-re "\\|\\(\\(" verilog-label-re "\\)?\\<assert\\>\\)\\|\\(\\<clocking\\>\\)\\|\\(\\<task\\>\\)\\|\\(\\<function\\>\\)\\|\\(\\<initial\\>\\)\\|\\(\\<interface\\>\\)\\|\\(\\<package\\>\\)\\|\\(\\<final\\>\\)\\|\\(@\\)\\|\\(\\<while\\>\\)\\|\\(\\<do\\>\\)\\|\\(\\<for\\(ever\\|each\\)?\\>\\)\\|\\(\\<repeat\\>\\)\\|\\(\\<wait\\>\\)\\|#"))
(defconst verilog-named-block-re "begin[ 	]*:")
(defconst verilog-beg-block-re "\\<\\(`\\(?:\\(?:ovm_\\(?:\\(?:component\\(?:_param\\)?\\|field\\|object\\(?:_param\\)?\\|sequencer?\\)_utils\\)\\|uvm_\\(?:\\(?:component\\(?:_param\\)?\\|field\\|object\\(?:_param\\)?\\|sequencer?\\)_utils\\)\\|vmm_\\(?:\\(?:data\\|env\\|s\\(?:cenario\\|ubenv\\)\\|xactor\\)_member\\)\\)_begin\\)\\|begin\\|c\\(?:ase[xz]?\\|locking\\)\\|f\\(?:ork\\|unction\\)\\|generate\\|property\\|randcase\\|specify\\|ta\\(?:ble\\|sk\\)\\)\\>")
(defconst verilog-beg-block-re-ordered "\\(\\<begin\\>\\)\\|\\(\\<randcase\\>\\|\\(\\<unique0?\\s-+\\|priority\\s-+\\)?case[xz]?\\>\\)\\|\\(\\(\\<disable\\>\\s-+\\|\\<wait\\>\\s-+\\)?fork\\>\\)\\|\\(\\<class\\>\\)\\|\\(\\<table\\>\\)\\|\\(\\<specify\\>\\)\\|\\(\\<function\\>\\)\\|\\(\\(?:\\<\\(?:virtual\\|protected\\|static\\)\\>\\s-+\\)*\\<function\\>\\)\\|\\(\\<task\\>\\)\\|\\(\\(?:\\<\\(?:virtual\\|protected\\|static\\)\\>\\s-+\\)*\\<task\\>\\)\\|\\(\\<generate\\>\\)\\|\\(\\<covergroup\\>\\)\\|\\(\\(?:\\(?:\\<cover\\>\\s-+\\)\\|\\(?:\\<assert\\>\\s-+\\)\\)*\\<property\\>\\)\\|\\(\\<\\(?:rand\\)?sequence\\>\\)\\|\\(\\<clocking\\>\\)\\|\\(\\<`[ou]vm_[a-z_]+_begin\\>\\)\\|\\(\\<`vmm_[a-z_]+_member_begin\\>\\)")
(defconst verilog-end-block-ordered-rry ["\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)\\|\\(\\<endcase\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" "\\(\\<randcase\\>\\|\\<case[xz]?\\>\\)\\|\\(\\<endcase\\>\\)" "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" "\\(\\<class\\>\\)\\|\\(\\<endclass\\>\\)" "\\(\\<table\\>\\)\\|\\(\\<endtable\\>\\)" "\\(\\<specify\\>\\)\\|\\(\\<endspecify\\>\\)" "\\(\\<function\\>\\)\\|\\(\\<endfunction\\>\\)" "\\(\\<generate\\>\\)\\|\\(\\<endgenerate\\>\\)" "\\(\\<task\\>\\)\\|\\(\\<endtask\\>\\)" "\\(\\<covergroup\\>\\)\\|\\(\\<endgroup\\>\\)" "\\(\\<property\\>\\)\\|\\(\\<endproperty\\>\\)" "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<endsequence\\>\\)" "\\(\\<clocking\\>\\)\\|\\(\\<endclocking\\>\\)"])
(defconst verilog-nameable-item-re "\\<\\(begin\\|end\\(?:c\\(?:ase\\|hecker\\|l\\(?:ass\\|ocking\\)\\|on\\(?:fig\\|nectmodule\\)\\)\\|function\\|g\\(?:enerate\\|roup\\)\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|o\\(?:gram\\|perty\\)\\)\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\)?\\|fork\\|join\\(?:_\\(?:any\\|none\\)\\)?\\)\\>")
(defconst verilog-declaration-opener "\\<\\(begin\\|connectmodule\\|function\\|module\\|task\\)\\>")
(defconst verilog-declaration-prefix-re "\\<\\(const\\|in\\(?:[op]ut\\)\\|local\\(?:param\\)?\\|output\\|p\\(?:arameter\\|rotected\\)\\|r\\(?:and\\|ef\\)\\|static\\|typedef\\|var\\)\\>")
(defconst verilog-declaration-core-re "\\<\\(b\\(?:it\\|yte\\)\\|chandle\\|e\\(?:num\\|vent\\)\\|genvar\\|in\\(?:out\\|put\\|t\\(?:eger\\)?\\)\\|lo\\(?:calparam\\|gic\\|ngint\\)\\|mailbox\\|output\\|parameter\\|re\\(?:al\\(?:time\\)?\\|g\\)\\|s\\(?:emaphore\\|hort\\(?:int\\|real\\)\\|tr\\(?:ing\\|uct\\)\\|upply[01]\\)\\|t\\(?:ime\\|ri\\(?:and\\|or\\|reg\\|[01]\\)?\\)\\|u\\(?:nion\\|wire\\)\\|v\\(?:ar\\|irtual\\)\\|w\\(?:and\\|ire\\|or\\)\\)\\>")
(defconst verilog-declaration-re (concat "\\(" verilog-declaration-prefix-re "\\s-*\\)?" verilog-declaration-core-re))
(defconst verilog-range-re "\\(\\[[^]]*\\]\\s-*\\)+")
(defconst verilog-optional-signed-re "\\s-*\\(\\(un\\)?signed\\)?")
(defconst verilog-optional-signed-range-re (concat "\\s-*\\(\\<\\(reg\\|wire\\)\\>\\s-*\\)?\\(\\<\\(un\\)?signed\\>\\s-*\\)?\\(" verilog-range-re "\\)?"))
(defconst verilog-macroexp-re "`\\sw+")
(defconst verilog-delay-re "#\\s-*\\(\\([0-9_]+\\('s?[hdxbo][0-9a-fA-F_xz]+\\)?\\)\\|\\(([^()]*)\\)\\|\\(\\sw+\\)\\)")
(defconst verilog-declaration-re-2-no-macro (concat "\\s-*" verilog-declaration-re "\\s-*\\(\\(" verilog-optional-signed-range-re "\\)\\|\\(" verilog-delay-re "\\)\\)"))
(defconst verilog-declaration-re-2-macro (concat "\\s-*" verilog-declaration-re "\\s-*\\(\\(" verilog-optional-signed-range-re #1="\\)\\|\\(" verilog-delay-re #1# verilog-macroexp-re "\\)\\)"))
(defconst verilog-declaration-re-1-macro (concat "^" verilog-declaration-re-2-macro))
(defconst verilog-declaration-re-1-no-macro (concat "^" verilog-declaration-re-2-no-macro))
(defconst verilog-defun-re "\\<\\(c\\(?:lass\\|on\\(?:fig\\|nectmodule\\)\\)\\|interface\\|m\\(?:\\(?:acrom\\)?odule\\)\\|p\\(?:ackage\\|r\\(?:imitive\\|ogram\\)\\)\\)\\>")
(defconst verilog-end-defun-re "\\<\\(end\\(?:c\\(?:lass\\|on\\(?:fig\\|nectmodule\\)\\)\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|ogram\\)\\)\\)\\)\\>")
(defconst verilog-zero-indent-re (concat verilog-defun-re "\\|" verilog-end-defun-re))
(defconst verilog-inst-comment-re "\\<\\(In\\(?:outs\\|puts\\|terface[ds]\\)\\|Outputs\\)\\>")
(defconst verilog-behavioral-block-beg-re "\\<\\(a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\)\\|f\\(?:inal\\|unction\\)\\|initial\\|task\\)\\>")
(defconst verilog-coverpoint-re "\\w+\\s-*:\\s-*\\(coverpoint\\|cross\\|constraint\\)")
(defconst verilog-in-constraint-re "\\<\\(else\\|foreach\\|if\\|solve\\)\\>")
(defconst verilog-indent-re "\\<\\(`\\(?:case\\|def\\(?:ault\\|ine\\)\\|e\\(?:ls\\(?:e\\|if\\)\\|nd\\(?:for\\|if\\|protect\\|switch\\|while\\)\\)\\|for\\(?:mat\\)?\\|i\\(?:f\\(?:n?def\\)?\\|nclude\\)\\|let\\|ovm_\\(?:component_\\(?:param_utils_begin\\|utils_\\(?:begin\\|end\\)\\)\\|field_utils_\\(?:begin\\|end\\)\\|object_\\(?:param_utils_begin\\|utils_\\(?:begin\\|end\\)\\)\\|sequence\\(?:_utils_\\(?:begin\\|end\\)\\|r_utils_\\(?:begin\\|end\\)\\)\\)\\|protect\\|switch\\|time\\(?:_?scale\\)\\|u\\(?:ndef\\|vm_\\(?:component_\\(?:param_utils_begin\\|utils_\\(?:begin\\|end\\)\\)\\|field_utils_\\(?:begin\\|end\\)\\|object_\\(?:param_utils_begin\\|utils_\\(?:begin\\|end\\)\\)\\|sequence\\(?:_utils_\\(?:begin\\|end\\)\\|r_utils_\\(?:begin\\|end\\)\\)\\)\\)\\|vmm_\\(?:data_member_\\(?:begin\\|end\\)\\|env_member_\\(?:begin\\|end\\)\\|s\\(?:cenario_member_\\(?:begin\\|end\\)\\|ubenv_member_\\(?:begin\\|end\\)\\)\\|xactor_member_\\(?:begin\\|end\\)\\)\\|while\\)\\|a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\)\\|begin\\|c\\(?:ase[xz]?\\|l\\(?:ass\\|ocking\\)\\|o\\(?:n\\(?:fig\\|nectmodule\\)\\|vergroup\\)\\)\\|end\\(?:c\\(?:ase\\|l\\(?:ass\\|ocking\\)\\|on\\(?:fig\\|nectmodule\\)\\)\\|function\\|g\\(?:enerate\\|roup\\)\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|o\\(?:gram\\|perty\\)\\)\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\)?\\|f\\(?:inal\\|ork\\|unction\\)\\|generate\\|in\\(?:itial\\|terface\\)\\|join\\(?:_\\(?:any\\|none\\)\\)?\\|m\\(?:\\(?:acrom\\)?odule\\)\\|p\\(?:ackage\\|r\\(?:imitive\\|o\\(?:gram\\|perty\\)\\)\\)\\|rand\\(?:\\(?:cas\\|sequenc\\)e\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\|virtual\\|{\\)\\>")
(defconst verilog-defun-level-not-generate-re "\\<\\(c\\(?:lass\\|on\\(?:fig\\|nectmodule\\)\\)\\|interface\\|m\\(?:\\(?:acrom\\)?odule\\)\\|p\\(?:ackage\\|r\\(?:imitive\\|ogram\\)\\)\\)\\>")
(defconst verilog-defun-level-re "\\<\\(a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\)\\|c\\(?:lass\\|on\\(?:fig\\|nectmodule\\)\\)\\|end\\(?:function\\|task\\)\\|final\\|in\\(?:itial\\|terface\\)\\|m\\(?:\\(?:acrom\\)?odule\\)\\|p\\(?:ackage\\|r\\(?:imitive\\|ogram\\)\\)\\)\\>")
(defconst verilog-defun-level-generate-only-re "\\<\\(a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\)\\|end\\(?:function\\|task\\)\\|\\(?:fin\\|initi\\)al\\)\\>")
(defconst verilog-cpp-level-re "\\<\\(end\\(?:c\\(?:lass\\|onnectmodule\\)\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|ogram\\)\\)\\)\\)\\>")
(defconst verilog-dpi-import-export-re "\\(\\<\\(import\\|export\\)\\>\\s-+\"DPI\\(-C\\)?\"\\s-+\\(\\<\\(context\\|pure\\)\\>\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_]*\\s-*=\\s-*\\)?\\<\\(function\\|task\\)\\>\\)")
(defconst verilog-default-clocking-re "\\<default\\s-+clocking\\s-+[A-Za-z_][A-Za-z0-9_]*\\s-*;")
(defconst verilog-disable-fork-re "\\(disable\\|wait\\)\\s-+fork\\>")
(defconst verilog-extended-case-re "\\(\\(unique0?\\s-+\\|priority\\s-+\\)?case[xz]?\\|randcase\\)")
(defconst verilog-extended-complete-re (concat "\\(\\(\\<extern\\s-+\\|\\<\\(\\<\\(pure\\|context\\)\\>\\s-+\\)?virtual\\s-+\\|\\<protected\\s-+\\|\\<static\\s-+\\)*\\(\\<function\\>\\|\\<task\\>\\)\\)\\|\\(\\(\\<typedef\\>\\s-+\\)*\\(\\<struct\\>\\|\\<union\\>\\|\\<class\\>\\)\\)\\|\\(\\(\\<\\(import\\|export\\)\\>\\s-+\\)?\\(\"DPI\\(-C\\)?\"\\s-+\\)?\\(\\<\\(pure\\|context\\)\\>\\s-+\\)?\\([A-Za-z_][A-Za-z0-9_]*\\s-*=\\s-*\\)?\\(function\\>\\|task\\>\\)\\)\\|" verilog-extended-case-re))
(defconst verilog-basic-complete-re "\\<\\(a\\(?:lways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\|nalog\\|ss\\(?:ert\\|ign\\)\\)\\|con\\(?:nectmodule\\|straint\\)\\|do\\|else\\|f\\(?:inal\\|or\\(?:e\\(?:ach\\|ver\\)\\)?\\)\\|i\\(?:f\\|mport\\|nitial\\)\\|localparam\\|m\\(?:\\(?:acrom\\)?odule\\)\\|parameter\\|r\\(?:andcase\\|epeat\\)\\|while\\)\\>")
(defconst verilog-complete-reg (concat verilog-extended-complete-re "\\|\\(" verilog-basic-complete-re "\\)"))
(defconst verilog-end-statement-re (concat "\\(" verilog-beg-block-re "\\)\\|\\(" verilog-end-block-re "\\)"))
(defconst verilog-endcase-re (concat verilog-extended-case-re "\\|\\(endcase\\)\\|" verilog-defun-re))
#@49 String used to mark beginning of excluded text.
(defconst verilog-exclude-str-start "/* -----\\/----- EXCLUDED -----\\/-----" (#$ . 88429))
#@43 String used to mark end of excluded text.
(defconst verilog-exclude-str-end " -----/\\----- EXCLUDED -----/\\----- */" (#$ . 88575))
(defconst verilog-preprocessor-re "\\(?:\\<\\(`\\(?:__\\(?:\\(?:FIL\\|LIN\\)E__\\)\\|celldefine\\|e\\(?:lse\\|nd\\(?:_keywords\\|celldefine\\|if\\)\\)\\|nounconnected_drive\\|resetall\\|un\\(?:connected_drive\\|defineall\\)\\)\\)\\>\\)\\|\\(?:\\<\\(`elsif\\|`ifn?def\\|`undef\\|`default_nettype\\|`begin_keywords\\)\\>\\s-\\)\\|\\(?:\\<\\(`line\\)\\>\\s-+[0-9]+\\s-+\"[^\"]+\"\\s-+[012]\\)\\|\\(?:\\<\\(`include\\)\\>\\s-+\\(?:\"[^\"]+\"\\|<[^>]+>\\)\\)\\|\\(?:\\<\\(`pragma\\)\\>\\s-+.+$\\)\\|\\(?:\\<\\(`timescale\\)\\>\\s-+10\\{0,2\\}\\s-*[munpf]?s\\s-*/\\s-*10\\{0,2\\}\\s-*[munpf]?s\\)\\|\\(?:\\<\\(`define\\|`if\\)\\>\\s-+\\(?:.*?\\(?:\n.*\\)*?\\)\\(?:\n\\s-*\n\\|\\'\\)\\)\\|\\(?:\\<`\\w+\\>\\s-*(\\(?:.*?\\(?:\n.*\\)*?\\)\\(?:\n\\s-*\n\\|\\'\\)\\)")
#@27 List of Verilog keywords.
(defconst verilog-keywords (append verilog-compiler-directives '("after" "alias" "always" "always_comb" "always_ff" "always_latch" "analog" "and" "assert" "assign" "assume" "automatic" "before" "begin" "bind" "bins" "binsof" "bit" "break" "buf" "bufif0" "bufif1" "byte" "case" "casex" "casez" "cell" "chandle" "class" "clocking" "cmos" "config" "const" "constraint" "context" "continue" "cover" "covergroup" "coverpoint" "cross" "deassign" "default" "defparam" "design" "disable" "dist" "do" "edge" "else" "end" "endcase" "endclass" "endclocking" "endconfig" "endfunction" "endgenerate" "endgroup" "endinterface" "endmodule" "endpackage" "endprimitive" "endprogram" "endproperty" "endspecify" "endsequence" "endtable" "endtask" "enum" "event" "expect" "export" "extends" "extern" "final" "first_match" "for" "force" "foreach" "forever" "fork" "forkjoin" "function" "generate" "genvar" "highz0" "highz1" "if" "iff" "ifnone" "ignore_bins" "illegal_bins" "import" "incdir" "include" "initial" "inout" "input" "inside" "instance" "int" "integer" "interface" "intersect" "join" "join_any" "join_none" "large" "liblist" "library" "local" "localparam" "logic" "longint" "macromodule" "mailbox" "matches" "medium" "modport" "module" "nand" "negedge" "new" "nmos" "nor" "noshowcancelled" "not" "notif0" "notif1" "null" "or" "output" "package" "packed" "parameter" "pmos" "posedge" "primitive" "priority" "program" "property" "protected" "pull0" "pull1" "pulldown" "pullup" "pulsestyle_onevent" "pulsestyle_ondetect" "pure" "rand" "randc" "randcase" "randsequence" "rcmos" "real" "realtime" "ref" "reg" "release" "repeat" "return" "rnmos" "rpmos" "rtran" "rtranif0" "rtranif1" "scalared" "semaphore" "sequence" "shortint" "shortreal" "showcancelled" "signed" "small" "solve" "specify" "specparam" "static" "string" "strong0" "strong1" "struct" "super" "supply0" "supply1" "table" "tagged" "task" "this" "throughout" "time" "timeprecision" "timeunit" "tran" "tranif0" "tranif1" "tri" "tri0" "tri1" "triand" "trior" "trireg" "type" "typedef" "union" "unique" "unsigned" "use" "uwire" "var" "vectored" "virtual" "void" "wait" "wait_order" "wand" "weak0" "weak1" "while" "wildcard" "wire" "with" "within" "wor" "xnor" "xor" "accept_on" "checker" "endchecker" "eventually" "global" "implies" "let" "nexttime" "reject_on" "restrict" "s_always" "s_eventually" "s_nexttime" "s_until" "s_until_with" "strong" "sync_accept_on" "sync_reject_on" "unique0" "until" "until_with" "untyped" "weak" "implements" "interconnect" "nettype" "soft" "connectmodule" "endconnectmodule")) (#$ . 89472))
#@48 Dual comment value for `comment-start-regexp'.
(defconst verilog-comment-start-regexp "//\\|/\\*" (#$ . 92072))
#@44 Syntax table used in Verilog mode buffers.
(defvar verilog-mode-syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\305#\210\301\307\305#\210\301\310\305#\210\301\311\305#\210\301\312\305#\210\301\313\305#\210\301\314\305#\210\301\315\316#\210\301\317\316#\210\301\320\305#\210\301\321\322#\210\301\323\324#\210\301\325\326#\210\207" [make-syntax-table modify-syntax-entry 92 "\\" 43 "." 45 61 37 60 62 38 124 96 "w" 95 39 47 ". 124b" 42 ". 23" 10 "> b"] 5) (#$ . 92190))
#@40 Default highlighting for Verilog mode.
(defvar verilog-font-lock-keywords nil (#$ . 92704))
#@46 Subdued level highlighting for Verilog mode.
(defvar verilog-font-lock-keywords-1 nil (#$ . 92802))
#@87 Medium level highlighting for Verilog mode.
See also `verilog-font-lock-extra-types'.
(defvar verilog-font-lock-keywords-2 nil (#$ . 92908))
#@86 Gaudy level highlighting for Verilog mode.
See also `verilog-font-lock-extra-types'.
(defvar verilog-font-lock-keywords-3 nil (#$ . 93055))
#@41 Font to use for translated off regions.
(defvar verilog-font-lock-translate-off-face 'verilog-font-lock-translate-off-face (#$ . 93201))
(custom-declare-face 'verilog-font-lock-translate-off-face '((((class color) (background light)) (:background "gray90" :italic t)) (((class color) (background dark)) (:background "gray10" :italic t)) (((class grayscale) (background light)) (:foreground "DimGray" :italic t)) (((class grayscale) (background dark)) (:foreground "LightGray" :italic t)) (t (:italic t))) "Font lock mode face used to background highlight translate-off regions." :group 'font-lock-highlighting-faces)
#@42 Obsolete font to use for p1800 keywords.
(defvar verilog-font-lock-p1800-face 'verilog-font-lock-p1800-face (#$ . 93824))
(byte-code "\300\301\302\303\304\305%\210\306\301\307\310#\207" [custom-declare-face verilog-font-lock-p1800-face ((((class color) (background light)) (:foreground "DarkOrange3" :bold t)) (((class color) (background dark)) (:foreground "orange1" :bold t)) (t (:italic t))) "Font lock mode face used to highlight P1800 keywords." :group font-lock-highlighting-faces make-obsolete-variable nil "27.1"] 6)
#@47 Font to use for Analog/Mixed Signal keywords.
(defvar verilog-font-lock-ams-face 'verilog-font-lock-ams-face (#$ . 94355))
(custom-declare-face 'verilog-font-lock-ams-face '((((class color) (background light)) (:foreground "Purple" :bold t)) (((class color) (background dark)) (:foreground "orange1" :bold t)) (t (:italic t))) "Font lock mode face used to highlight AMS keywords." :group 'font-lock-highlighting-faces)
#@65 Font to use for Verilog Grouping Keywords (such as begin..end).
(defvar verilog-font-lock-grouping-keywords-face 'verilog-font-lock-grouping-keywords-face (#$ . 94780))
(byte-code "\306\307\310\311\312\313%\210\314\315\203\307\202\316B\317\316B\320\321BF\322	\323\324\325E\326\327\330E\331\332\n\333\334\335\336FD\257\"\322\337\340\341\342\343\344\257\"\322\f
\205G\345C\"&\335\207" [verilog-highlight-grouping-keywords verilog-font-lock-keywords verilog-declaration-re verilog-font-lock-keywords-1 verilog-font-lock-keywords-2 verilog-highlight-translate-off custom-declare-face verilog-font-lock-grouping-keywords-face ((((class color) (background light)) (:foreground "Purple" :bold t)) (((class color) (background dark)) (:foreground "orange1" :bold t)) (t (:italic t))) "Font lock mode face used to highlight verilog grouping keywords." :group font-lock-highlighting-faces "\\<\\(\\(?:a\\(?:ccept_on\\|l\\(?:ias\\|ways\\(?:_\\(?:comb\\|ff\\|latch\\)\\)?\\)\\|nalog\\|ss\\(?:ert\\|ign\\|ume\\)\\|utomatic\\)\\|b\\(?:efore\\|in\\(?:sof\\|[ds]\\)\\|reak\\)\\|c\\(?:ase[xz]?\\|ell\\|hecker\\|l\\(?:ass\\|ocking\\)\\|o\\(?:n\\(?:fig\\|straint\\|t\\(?:ext\\|inue\\)\\)\\|ver\\(?:group\\|point\\)?\\)\\|ross\\)\\|d\\(?:e\\(?:assign\\|fault\\|sign\\)\\|is\\(?:able\\|t\\)\\|o\\)\\|e\\(?:dge\\|lse\\|nd\\(?:c\\(?:ase\\|hecker\\|l\\(?:ass\\|ocking\\)\\|onfig\\)\\|function\\|g\\(?:enerate\\|roup\\)\\|interface\\|module\\|p\\(?:ackage\\|r\\(?:imitive\\|o\\(?:gram\\|perty\\)\\)\\)\\|s\\(?:equence\\|pecify\\)\\|ta\\(?:ble\\|sk\\)\\)\\|ventually\\|x\\(?:p\\(?:\\(?:ec\\|or\\)t\\)\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:i\\(?:nal\\|rst_match\\)\\|or\\(?:ce\\|e\\(?:ach\\|ver\\)\\|k\\(?:join\\)?\\)?\\|unction\\)\\|g\\(?:enerate\\|lobal\\)\\|i\\(?:f\\(?:f\\|none\\)?\\|gnore_bins\\|llegal_bins\\|mp\\(?:l\\(?:\\(?:ement\\|ie\\)s\\)\\|ort\\)\\|n\\(?:c\\(?:dir\\|lude\\)\\|itial\\|s\\(?:\\(?:id\\|tanc\\)e\\)\\|ter\\(?:face\\|sect\\)\\)\\)\\|join\\(?:_\\(?:any\\|none\\)\\)?\\|l\\(?:arge\\|et\\|ib\\(?:list\\|rary\\)\\|ocal\\)\\|m\\(?:a\\(?:cromodule\\|tches\\)\\|edium\\|od\\(?:port\\|ule\\)\\)\\|n\\(?:e\\(?:gedge\\|w\\|xttime\\)\\|oshowcancelled\\|ull\\)\\|p\\(?:ackage\\|osedge\\|r\\(?:i\\(?:mitive\\|ority\\)\\|o\\(?:gram\\|perty\\|tected\\)\\)\\|u\\(?:lsestyle_on\\(?:\\(?:detec\\|even\\)t\\)\\|re\\)\\)\\|r\\(?:and\\(?:c\\(?:ase\\)?\\|sequence\\)?\\|e\\(?:ject_on\\|lease\\|peat\\|strict\\|turn\\)\\)\\|s\\(?:_\\(?:always\\|eventually\\|nexttime\\|until\\(?:_with\\)?\\)\\|calared\\|equence\\|howcancelled\\|mall\\|o\\(?:ft\\|lve\\)\\|pecify\\|tr\\(?:ength\\|ong\\)\\|uper\\|ync_\\(?:\\(?:accep\\|rejec\\)t_on\\)\\)\\|t\\(?:a\\(?:ble\\|gged\\|sk\\)\\|h\\(?:is\\|roughout\\)\\|ime\\(?:precision\\|unit\\)\\)\\|u\\(?:n\\(?:ique0?\\|t\\(?:il\\(?:_with\\)?\\|yped\\)\\)\\|se\\)\\|v\\(?:irtual\\|oid\\)\\|w\\(?:ait\\(?:_order\\)?\\|eak\\|hile\\|i\\(?:ldcard\\|th\\(?:in\\)?\\)\\)\\)\\|\\$[a-zA-Z][a-zA-Z0-9_\\$]*\\)\\>" "\\<\\(\\(?:begin\\|end\\)\\)\\>" font-lock-type-face "\\<\\(\\(?:and\\|b\\(?:it\\|uf\\(?:if[01]\\)?\\|yte\\)\\|c\\(?:handle\\|mos\\|onst\\)\\|defparam\\|e\\(?:num\\|vent\\)\\|genvar\\|highz[01]\\|in\\(?:out\\|put\\|t\\(?:e\\(?:ger\\|rconnect\\)\\)?\\)\\|lo\\(?:calparam\\|gic\\|ngint\\)\\|mailbox\\|n\\(?:and\\|ettype\\|mos\\|o\\(?:tif[01]\\|[rt]\\)\\)\\|o\\(?:r\\|utput\\)\\|p\\(?:a\\(?:cked\\|rameter\\)\\|mos\\|ull\\(?:down\\|up\\|[01]\\)\\)\\|r\\(?:cmos\\|e\\(?:al\\(?:time\\)?\\|[fg]\\)\\|nmos\\|pmos\\|tran\\(?:if[01]\\)?\\)\\|s\\(?:emaphore\\|hort\\(?:int\\|real\\)\\|igned\\|pecparam\\|t\\(?:atic\\|r\\(?:ing\\|ong[01]\\|uct\\)\\)\\|upply[01]?\\)\\|t\\(?:ime\\|r\\(?:an\\(?:if[01]\\)?\\|i\\(?:and\\|or\\|reg\\|[01]\\)?\\)\\|ype\\(?:def\\)?\\)\\|u\\(?:n\\(?:ion\\|signed\\)\\|wire\\)\\|v\\(?:ar\\|ectored\\)\\|w\\(?:and\\|eak[01]\\|ire\\|or\\)\\|x\\(?:n?or\\)\\)\\)\\>" "\\<\\(\\(?:a\\(?:b\\(?:ove\\|s\\(?:delay\\|tol\\)?\\)\\|c\\(?:_stim\\|cess\\|osh?\\)\\|liasparam\\|nal\\(?:og\\|ysis\\)\\|sinh?\\|tan[2h]?\\)\\|branch\\|c\\(?:eil\\|o\\(?:n\\(?:nect\\(?:module\\|rules\\)?\\|tinuous\\)\\|sh?\\)\\)\\|d\\(?:d\\(?:t_nature\\|[tx]\\)\\|isc\\(?:\\(?:iplin\\|ret\\)e\\)\\|omain\\|river_update\\)\\|e\\(?:nd\\(?:connect\\(?:module\\|rules\\)\\|discipline\\|nature\\|paramset\\)\\|x\\(?:clude\\|p\\)\\)\\|f\\(?:inal_step\\|l\\(?:icker_noise\\|o\\(?:or\\|w\\)\\)\\|rom\\)\\|ground\\|hypot\\|i\\(?:dt\\(?:_nature\\|mod\\)?\\|n\\(?:f\\|itial_step\\)\\)\\|l\\(?:a\\(?:place_\\(?:n[dp]\\|z[dp]\\)\\|st_crossing\\)\\|imexp\\|n\\|og\\)\\|m\\(?:ax\\|erged\\|in\\)\\|n\\(?:ature\\|et_resolution\\|oise_table\\)\\|p\\(?:aramset\\|o\\(?:tential\\|w\\)\\)\\|resolveto\\|s\\(?:inh?\\|lew\\|\\(?:pli\\|qr\\)t\\)\\|t\\(?:anh?\\|imer\\|ransition\\)\\|units\\|w\\(?:hite_noise\\|real\\)\\|zi_\\(?:n[dp]\\|z[dp]\\)\\)\\)\\>" verilog-font-lock-ams-face append "\\<\\(\\(macro\\|connect\\)?module\\|primitive\\|class\\|program\\|interface\\|package\\|task\\)\\>\\s-*\\(\\sw+\\)" (1 font-lock-keyword-face) (3 font-lock-function-name-face prepend) "\\<function\\>\\s-+\\(integer\\|real\\(time\\)?\\|time\\)\\s-+\\(\\sw+\\)" (1 font-lock-keyword-face) (3 font-lock-constant-face prepend) ("\\<function\\>\\s-+\\(\\[[^]]+\\]\\)\\s-+\\(\\sw+\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face append)) ("\\<function\\>\\s-+\\(\\sw+\\)" 1 'font-lock-constant-face append) verilog-declaration-varname-matcher (if (not (verilog-in-comment-p)) (verilog-single-declaration-end verilog-highlight-max-lookahead) (point)) nil (0 font-lock-variable-name-face t t) "\\(//\\s-*\\(\\(?:0in\\|auto\\|leda\\|rtl_synthesis\\|s\\(?:urefire\\|ynopsys\\)\\|verilint\\)\\)\\s-.*\\)" ("\\(\\\\\\S-*\\s-\\)" 0 font-lock-function-name-face) ("`\\s-*[A-Za-z][A-Za-z0-9_]*" 0 (if (boundp 'font-lock-preprocessor-face) 'font-lock-preprocessor-face 'font-lock-type-face)) ("\\(@\\)\\|\\([ 	\n\f
]#\\s-*\\(\\([0-9_.]+\\('s?[hdxbo][0-9a-fA-F_xz]*\\)?\\)\\|\\(([^()]+)\\|\\sw+\\)\\)\\)" 0 font-lock-type-face append) ("\\(##\\(\\sw+\\|\\[[^]]+\\]\\)\\)" 0 font-lock-type-face append) ("\\([A-Za-z][A-Za-z0-9_]*\\)\\s-*(" 1 font-lock-function-name-face) (verilog-match-translate-off (0 'verilog-font-lock-translate-off-face prepend)) verilog-font-lock-keywords-3] 11)
#@450 Execute BODY forms, saving state around insignificant change.
Changes in text properties like `face' or `syntax-table' are
considered insignificant.  This macro allows text properties to
be changed, even in a read-only buffer.

A change is considered significant if it affects the buffer text
in any way that isn't completely restored again.  Any
user-visible changes to the buffer must not be within a
`verilog-save-buffer-state'.

(fn &rest BODY)
(defalias 'verilog-save-buffer-state '(macro . #[128 "\300\301\302\303!\203\303B\202\304\305\306\307B\310BBEE\207" [let ((inhibit-point-motion-hooks t) (verilog-no-change-functions t)) fboundp with-silent-modifications let* ((modified (buffer-modified-p)) (buffer-undo-list t) (inhibit-read-only t) (inhibit-modification-hooks t) before-change-functions after-change-functions deactivate-mark buffer-file-name buffer-file-truename) unwind-protect progn ((and (not modified) (buffer-modified-p) (verilog-restore-buffer-modified-p nil)))] 8 (#$ . 100933)]))
#@77 Local variable when inside a `verilog-save-font-no-change-functions' block.
(defvar verilog-save-font-mod-hooked nil (#$ . 101951))
(make-variable-buffer-local 'verilog-save-font-mod-hooked)
#@349 Execute BODY forms, disabling all change hooks in BODY.
Includes temporary disabling of `font-lock' to restore the buffer
to full text form for parsing.  Additional actions may be specified with
`verilog-before-save-font-hook' and `verilog-after-save-font-hook'.
For insignificant changes, see instead `verilog-save-buffer-state'.

(fn &rest BODY)
(defalias 'verilog-save-font-no-change-functions '(macro . #[128 "\300\301\302B\303\304\305\306\307\304\310\302BE\311BBF\257\207" [if verilog-save-font-mod-hooked progn (verilog-run-hooks 'verilog-before-save-font-hook) let* ((verilog-save-font-mod-hooked (- (point-max) (point-min))) (fontlocked (when font-lock-mode (font-lock-mode 0) t))) (run-hook-with-args 'before-change-functions (point-min) (point-max)) unwind-protect ((inhibit-point-motion-hooks t) (inhibit-modification-hooks t) (verilog-no-change-functions t) before-change-functions after-change-functions) ((run-hook-with-args 'after-change-functions (point-min) (point-max) verilog-save-font-mod-hooked) (when fontlocked (font-lock-mode t)) (verilog-run-hooks 'verilog-after-save-font-hook))] 13 (#$ . 102149)]))
#@158 If true, the specified buffer's comment properties are static.
Buffer changes will be ignored.  See `verilog-inside-comment-or-string-p'
and `verilog-scan'.
(defvar verilog-scan-cache-preserving nil (#$ . 103286))
#@63 Modification tick at which `verilog-scan' was last completed.
(defvar verilog-scan-cache-tick nil (#$ . 103506))
(make-variable-buffer-local 'verilog-scan-cache-tick)
#@33 Flush the `verilog-scan' cache.
(defalias 'verilog-scan-cache-flush #[0 "\301\211\207" [verilog-scan-cache-tick nil] 2 (#$ . 103679)])
#@43 Return t if the scan cache is up to date.
(defalias 'verilog-scan-cache-ok-p #[0 "\203p=\203	\206	\302 \232\207" [verilog-scan-cache-preserving verilog-scan-cache-tick buffer-chars-modified-tick] 2 (#$ . 103821)])
#@145 Execute the BODY forms, allowing scan cache preservation within BODY.
This requires that insertions must use `verilog-insert'.

(fn &rest BODY)
(defalias 'verilog-save-scan-cache '(macro . #[128 "\300\301\302\303\300BEE\207" [progn (unless (verilog-scan-cache-ok-p) (setq verilog-scan-cache-tick nil)) let* ((verilog-scan-cache-preserving (current-buffer)))] 7 (#$ . 104050)]))
#@143 Parse between BEG and END for `verilog-inside-comment-or-string-p'.
This creates v-cmts properties where comments are in force.

(fn BEG END)
(defalias 'verilog-scan-region #[514 "\212\305 \306\307\"\216\310\211\311 \310\211\310\306\312\"\216\313b\210`W\205\227\314\315!\203B`\262\316\317\310#\2047b\210\320T`\321\310$\210\202\314\322!\203a`\262\316\323\310#\204Vb\210\320T`\321\310$\210\202\314\324!\203\200`\262\325\326\310#\204ub\210\320T`\321\310$\210\202\327u\210\325\330\310#\203\221\331u\210\202b\210\202\262,\262+\262)\207" [verilog-no-change-functions inhibit-point-motion-hooks buffer-undo-list inhibit-read-only inhibit-modification-hooks match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] t buffer-modified-p #[0 "\300?\205\301\302!\207" [V0 restore-buffer-modified-p nil] 2] nil looking-at "//" search-forward "\n" put-text-property v-cmts "/\\*" "*/" "\"" re-search-forward "[^\\]\"" 1 "[/\"]" -1] 11 (#$ . 104436)])
#@190 Parse the buffer, marking all comments with properties.
Also assumes any text inserted since `verilog-scan-cache-tick'
either is ok to parse as a non-comment, or `verilog-insert' was used.
(defalias 'verilog-scan #[0 "\306 ?\205A\212\307\211\310 \307\211\307\311\312\"\216
\203'\313\314p\315 %\210\316ed\317#\210\320ed\"\210\315 
\205=\313\321!,\262+\207" [verilog-no-change-functions inhibit-point-motion-hooks buffer-undo-list inhibit-read-only inhibit-modification-hooks verilog-debug verilog-scan-cache-ok-p t buffer-modified-p make-closure #[0 "\300?\205\301\302!\207" [V0 restore-buffer-modified-p nil] 2] message "Scanning %s cache=%s cachetick=%S tick=%S" buffer-chars-modified-tick remove-text-properties (v-cmts nil) verilog-scan-region "Scanning... done" verilog-scan-cache-preserving verilog-scan-cache-tick] 8 (#$ . 105451)])
#@66 For debugging, show with display face results of `verilog-scan'.
(defalias 'verilog-scan-debug #[0 "\300\301!\210\212eb\210\302ed\303#\210m?\2054\304`\305\"\203(\306``T\307\310$\210\311u\210\202\312`!\206/db\210\202)\207" [font-lock-mode 0 remove-text-properties (face nil) get-text-property v-cmts put-text-property face underline 1 next-property-change] 5 (#$ . 106314)])
#@61 For debugging, run `verilog-scan' and `verilog-scan-debug'.
(defalias 'verilog-scan-and-debug #[0 "\302\211eb\210\303 \210\304 *\207" [verilog-scan-cache-tick verilog-scan-cache-preserving nil verilog-scan verilog-scan-debug] 2 (#$ . 106701)])
#@183 Check if optional point POS is inside a comment.
This may require a slow pre-parse of the buffer with `verilog-scan'
to establish comment properties on all text.

(fn &optional POS)
(defalias 'verilog-inside-comment-or-string-p #[256 "\300 \210\211\203\211eY\205\301\302\"\207\301`\302\"\207" [verilog-scan get-text-property v-cmts] 4 (#$ . 106954)])
#@208 Insert STUFF arguments, tracking for `verilog-inside-comment-or-string-p'.
Any insert that includes a comment must have the entire comment
inserted using a single call to `verilog-insert'.

(fn &rest STUFF)
(defalias 'verilog-insert #[128 "`\203@c\210A\262\202\300`\"\207" [verilog-scan-region] 5 (#$ . 107317)])
(defalias 'verilog-declaration-end #[0 "\300\301\302\303#\207" [search-forward ";" nil t] 4])
#@713 Return pos where current (single) declaration statement ends.
Also, this function moves POINT forward to the start of a variable name
(skipping the range-part and whitespace).
Function expected to be called with POINT just after a declaration keyword.
LIMIT sets the max POINT for searching and moving to.  No such limit if LIMIT
is 0.

Meaning of *single* declaration:
   E.g. In a module's port-list -
           module test(input clk, rst, x, output [1:0] y);
   Here 'input clk, rst, x' is 1 *single* declaration statement,
and 'output [1:0] y' is the other single declaration.  In the 1st single
declaration, POINT is moved to start of 'clk'.  And in the 2nd declaration,
POINT is moved to 'y'.

(fn LIMIT)
(defalias 'verilog-single-declaration-end #[257 "\302\211\303=\203\fd\202`\\\262\304 V\203\304 \262\305!\210\302f\306=\203-\307\310#\210\305!\210\212`W\203v\211`=\204v\302f\311=\204v\302f\312=\204v\313	!\204v`\262\3141r\315 \210\305!\210\302f\316=\205m\302u\210\305!0\210\2022\210\2022`)\207" [verilog-range-re verilog-declaration-re nil 0 buffer-size verilog-forward-ws&directives 91 re-search-forward t 59 41 looking-at (error) forward-sexp 44] 7 (#$ . 107740)])
#@423 Match first variable name b/w POINT & LIMIT, move POINT to next variable.
Expected to be called within a declaration statement, with POINT already beyond
the declaration keyword and range ([a:b])
This function moves POINT to the next variable within the same declaration (if
it exists).
LIMIT is expected to be the pos at which current single-declaration ends,
obtained using `verilog-single-declaration-end'.

(fn LIMIT)
(defalias 'verilog-declaration-varname-matcher #[257 "\301\211\302!\210`W\205L\303\304#\262\305 \306\307\"\216\302!\210\301\262`W\203E\301f\310>\204E`=\204E`\262\302!\210\311 \210\302!\210\202!\312\313!\210)\210\207" [verilog-symbol-re nil verilog-forward-ws&directives re-search-forward t match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] (44 41 59) forward-sexp skip-syntax-forward "."] 7 (#$ . 108952)])
#@172 Return text describing where POINTNUM or current point is (for errors).
Use filename, if current buffer being edited shorten to just buffer name.

(fn &optional POINTNUM)
(defalias 'verilog-point-text #[256 "\301 p\232\203\f\302 \206\206\302 \303\304\305e\206`\"T!Q\207" [buffer-file-name window-buffer buffer-name ":" int-to-string count-lines] 7 (#$ . 109839)])
#@45 Move backward over one balanced expression.
(defalias 'electric-verilog-backward-sexp #[0 "\300 \207" [verilog-backward-sexp] 1 (#$ . 110218) nil])
#@44 Move forward over one balanced expression.
(defalias 'electric-verilog-forward-sexp #[0 "\300 \207" [verilog-forward-sexp] 1 (#$ . 110372) nil])
#@35 Move forward ARG sexps.

(fn ARG)
(defalias 'verilog-forward-sexp-function #[257 "\211\300W\203	\301 \207\302 \207" [0 verilog-backward-sexp verilog-forward-sexp] 3 (#$ . 110523)])
(defalias 'verilog-backward-sexp #[0 "\301\302\301`\303\304!\204\305\306!\210\307 \206\303\310!\203\204\311P\262?\205\301\312\313\314#\203M\315 \211\262\203M\307 \203M\316\262\203I`V\202J\317\204'\320!\210\321\225\266\204\205\302\225\203c\322 \210\202\323\225\203oT\262\202\324\225\203S\262\321U\203\317\262\202\303!\203\215\322 \207\303\325!\203\302\225\203\311\326\301\312\313\314#\203\302\315 \211\262\203\302\307 \203\302\316\262\203\276`V\202\277\317\204\234\320!\210\321\225\207\323\225\203\377\327\301\312\313\314#\203\370\315 \211\262\203\370\307 \203\370\316\262\203\364`V\202\365\317\204\322\320!\210\321\225\207\324\225\2035\330\301\312\313\314#\203.\315 \211\262\203.\307 \203.\316\262\203*`V\202+\317\204\320!\210\321\225\207\331\225\203k\332\301\312\313\314#\203d\315 \211\262\203d\307 \203d\316\262\203``V\202a\317\204>\320!\210\321\225\207\333\225\203\241\334\301\312\313\314#\203\232\315 \211\262\203\232\307 \203\232\316\262\203\226`V\202\227\317\204t\320!\210\321\225\207\335\225\203\327\336\301\312\313\314#\203\320\315 \211\262\203\320\307 \203\320\316\262\203\314`V\202\315\317\204\252\320!\210\321\225\207\337\225\203
\340\301\312\313\314#\203\315 \211\262\203\307 \203\316\262\203`V\202\317\204\340\320!\210\321\225\207\211b\210\341\302!\207\211b\210\341 \207" [verilog-end-block-re nil 1 looking-at "\\<" forward-word-strictly -1 verilog-skip-backward-comment-or-string "\\<else\\>" "\\|\\(\\<else\\>\\)\\|\\(\\<if\\>\\)" move (nil nil) re-search-backward match-data (nil nil) t store-match-data 0 verilog-leap-to-head 2 3 "\\(endmodule\\>\\)\\|\\(\\<endprimitive\\>\\)\\|\\(\\<endclass\\>\\)\\|\\(\\<endprogram\\>\\)\\|\\(\\<endinterface\\>\\)\\|\\(\\<endpackage\\>\\)\\|\\(\\<endconnectmodule\\>\\)" "\\<\\(macro\\)?module\\>" "\\<primitive\\>" "\\<class\\>" 4 "\\<program\\>" 5 "\\<interface\\>" 6 "\\<package\\>" 7 "\\<connectmodule\\>" backward-sexp] 12])
(defalias 'verilog-forward-sexp #[0 "\302\303`\304\305\306!\204\307\310!\210\311 \203\312 \207\305!\203\325\313\225\203'\314\262\202\303\225\2035\315\262\316\262\202\317\225\203m\302\305	!\204T\305\320!\203c`\262\307\310!\210\305	!\203c\321\225b\210\307\313!\210\302\262\210\202\211b\210\322\262\210\202\323\225\203x\324\262\202\325\225\203\206\326\262\327\262\202\330\225\203\221\331\262\202\332\225\203\237\333\262\327\262\202\334\225\203\255\333\262\327\262\202\335\225\203\273\336\262\327\262\202\337\225\203\311\336\262\327\262\202\337\225\203\324\340\262\202\341\225\203\337\342\262\202\343\225\203\352\344\262\202\345\225\203\370\346\262\316\262\202\347\225\203\350\262\205t\307\313!\205t\3512t\211\304=\203\232\313\302\302\352\353\354#\203@\355 \211\262\203@\311 \203@\356\262\203<`W\202=\357\204\360!\210\321\225\266\204\205\225\225\203bS\262\321U\203\361\351\313\"\210\202\313\225\203`\262\313\224b\210\305	!\204\204\305\320!\203\213\307\310!\210\305	!\203\213\321\225b\210\202\211b\210T\262\202\266\202\202\323\302\352\353\354#\203\304\355 \211\262\203\304\311 \203\304\356\262\203\300`W\202\301\357\204\236\360!\210\321\225\266\204\205\323\361\351\313\"0\207\305\362!\203e\313\225\203\363\302\352\353\354#\203\n\355 \211\262\203\n\311 \203\n\356\262\203`W\202\357\204\344\360!\210\321\225\207\303\225\203G\364\302\352\353\354#\203@\355 \211\262\203@\311 \203@\356\262\203<`W\202=\357\204\360!\210\321\225\207\316\225\203}\365\302\352\353\354#\203v\355 \211\262\203v\311 \203v\356\262\203r`W\202s\357\204P\360!\210\321\225\207\317\225\203\263\366\302\352\353\354#\203\254\355 \211\262\203\254\311 \203\254\356\262\203\250`W\202\251\357\204\206\360!\210\321\225\207\367\225\203\351\370\302\352\353\354#\203\342\355 \211\262\203\342\311 \203\342\356\262\203\336`W\202\337\357\204\274\360!\210\321\225\207\323\225\203\371\302\352\353\354#\203\355 \211\262\203\311 \203\356\262\203`W\202\357\204\362\360!\210\321\225\207\325\225\203U\372\302\352\353\354#\203N\355 \211\262\203N\311 \203N\356\262\203J`W\202K\357\204(\360!\210\321\225\207b\210g\373U\203a\313u\207\374\313!\207b\210g\373U\203q\313u\207\374\313!\207" [verilog-beg-block-re-ordered verilog-disable-fork-re nil 2 yes looking-at "\\<" forward-word-strictly -1 verilog-skip-forward-comment-or-string verilog-forward-syntactic-ws 1 "\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)" "\\(\\<randcase\\>\\|\\(\\<unique0?\\>\\s-+\\|\\<priority\\>\\s-+\\)?\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)" 3 4 "fork" 0 "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" 6 "\\(\\<class\\>\\)\\|\\(\\<endclass\\>\\)" 7 "\\<endtable\\>" no 8 "\\(\\<specify\\>\\)\\|\\(\\<endspecify\\>\\)" 9 "\\<endfunction\\>" 10 11 "\\<endtask\\>" 12 "\\(\\<generate\\>\\)\\|\\(\\<endgenerate\\>\\)" 13 "\\(\\<covergroup\\>\\)\\|\\(\\<endgroup\\>\\)" 14 "\\(\\<property\\>\\)\\|\\(\\<endproperty\\>\\)" 15 "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<endsequence\\>\\)" 17 "\\(\\<clocking\\>\\)\\|\\(\\<endclocking\\>\\)" skip move (nil nil) re-search-forward match-data (nil nil) t store-match-data throw "\\(\\<\\(macro\\)?module\\>\\)\\|\\(\\<primitive\\>\\)\\|\\(\\<class\\>\\)\\|\\(\\<program\\>\\)\\|\\(\\<interface\\>\\)\\|\\(\\<package\\>\\)\\|\\(\\<connectmodule\\>\\)" "\\<endmodule\\>" "\\<endprimitive\\>" "\\<endclass\\>" "\\<endprogram\\>" 5 "\\<endinterface\\>" "\\<endpackage\\>" "\\<endconnectmodule\\>" 41 forward-sexp] 14])
(defalias 'verilog-declaration-beg #[0 "o\301\302\303#\203*\304 \211\262\203*\305 \203*\306\262\203&`V\202'\301\204\307!\210\310\225\207" [verilog-declaration-re t (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) store-match-data 0] 8])
(defvar verilog-which-tool 1)
(defvar verilog-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [verilog-mode-hook variable-documentation put "Hook run after entering Verilog mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp verilog-mode-map definition-name verilog-mode] 4)
(defvar verilog-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\311\312 !\210\306\301N\204-\302\306\301\303\313!#\210\302\310\314\315#\207" [verilog-mode-map variable-documentation put purecopy "Keymap for `verilog-mode'." boundp verilog-mode-syntax-table definition-name verilog-mode (lambda (#1=#:def-tmp-var) (defvar verilog-mode-syntax-table #1#)) make-syntax-table "Syntax table for `verilog-mode'." derived-mode-parent prog-mode] 5)
#@6575 Major mode for editing Verilog code.
\<verilog-mode-map>
See \[describe-function] verilog-auto (\[verilog-auto]) for details on how
AUTOs can improve coding efficiency.

Use \[verilog-faq] for a pointer to frequently asked questions.

NEWLINE, TAB indents for Verilog code.
Delete converts tabs to spaces as it moves back.

Supports highlighting.

Turning on Verilog mode calls the value of the variable `verilog-mode-hook'
with no args, if that value is non-nil.

Variables controlling indentation/edit style:

 variable `verilog-indent-level'      (default 3)
   Indentation of Verilog statements with respect to containing block.
 `verilog-indent-level-module'        (default 3)
   Absolute indentation of Module level Verilog statements.
   Set to 0 to get initial and always statements lined up
   on the left side of your screen.
 `verilog-indent-level-declaration'   (default 3)
   Indentation of declarations with respect to containing block.
   Set to 0 to get them list right under containing block.
 `verilog-indent-level-behavioral'    (default 3)
   Indentation of first begin in a task or function block
   Set to 0 to get such code to lined up underneath the task or
   function keyword.
 `verilog-indent-level-directive'     (default 1)
   Indentation of \=`ifdef/\=`endif blocks.
 `verilog-cexp-indent'              (default 1)
   Indentation of Verilog statements broken across lines i.e.:
      if (a)
        begin
 `verilog-case-indent'              (default 2)
   Indentation for case statements.
 `verilog-auto-newline'             (default nil)
   Non-nil means automatically newline after semicolons and the punctuation
   mark after an end.
 `verilog-auto-indent-on-newline'   (default t)
   Non-nil means automatically indent line after newline.
 `verilog-tab-always-indent'        (default t)
   Non-nil means TAB in Verilog mode should always reindent the current line,
   regardless of where in the line point is when the TAB command is used.
 `verilog-indent-begin-after-if'    (default t)
   Non-nil means to indent begin statements following a preceding
   if, else, while, for and repeat statements, if any.  Otherwise,
   the begin is lined up with the preceding token.  If t, you get:
      if (a)
         begin // amount of indent based on `verilog-cexp-indent'
   otherwise you get:
      if (a)
      begin
 `verilog-auto-endcomments'         (default t)
   Non-nil means a comment /* ... */ is set after the ends which ends
   cases, tasks, functions and modules.
   The type and name of the object will be set between the braces.
 `verilog-minimum-comment-distance' (default 10)
   Minimum distance (in lines) between begin and end required before a comment
   will be inserted.  Setting this variable to zero results in every
   end acquiring a comment; the default avoids too many redundant
   comments in tight quarters.
 `verilog-auto-lineup'              (default `declarations')
   List of contexts where auto lineup of code should be done.

Variables controlling other actions:

 `verilog-linter'                   (default `none')
   Unix program to call to run the lint checker.  This is the default
   command for \[compile-command] and \[verilog-auto-save-compile].

See \[customize] for the complete list of variables.

AUTO expansion functions are, in part:

    \[verilog-auto]  Expand AUTO statements.
    \[verilog-delete-auto]  Remove the AUTOs.
    \[verilog-inject-auto]  Insert AUTOs for the first time.

Some other functions are:

    \[completion-at-point]    Complete word with appropriate possibilities.
    \[verilog-mark-defun]  Mark function.
    \[verilog-beg-of-defun]  Move to beginning of current function.
    \[verilog-end-of-defun]  Move to end of current function.
    \[verilog-label-be]  Label matching begin ... end, fork ... join, etc statements.

    \[verilog-comment-region]  Put marked area in a comment.
    \[verilog-uncomment-region]  Uncomment an area commented with \[verilog-comment-region].
    \[verilog-insert-block]  Insert begin ... end.
    \[verilog-star-comment]    Insert /* ... */.

    \[verilog-sk-always]  Insert an always @(AS) begin .. end block.
    \[verilog-sk-begin]  Insert a begin .. end block.
    \[verilog-sk-case]  Insert a case block, prompting for details.
    \[verilog-sk-for]  Insert a for (...) begin .. end block, prompting for details.
    \[verilog-sk-generate]  Insert a generate .. endgenerate block.
    \[verilog-sk-header]  Insert a header block at the top of file.
    \[verilog-sk-initial]  Insert an initial begin .. end block.
    \[verilog-sk-fork]  Insert a fork begin .. end .. join block.
    \[verilog-sk-module]  Insert a module .. (/*AUTOARG*/);.. endmodule block.
    \[verilog-sk-ovm-class]  Insert an OVM Class block.
    \[verilog-sk-uvm-object]  Insert an UVM Object block.
    \[verilog-sk-uvm-component]  Insert an UVM Component block.
    \[verilog-sk-primitive]  Insert a primitive .. (.. );.. endprimitive block.
    \[verilog-sk-repeat]  Insert a repeat (..) begin .. end block.
    \[verilog-sk-specify]  Insert a specify .. endspecify block.
    \[verilog-sk-task]  Insert a task .. begin .. end endtask block.
    \[verilog-sk-while]  Insert a while (...) begin .. end block,
                       prompting for details.
    \[verilog-sk-casex]  Insert a casex (...) item: begin.. end endcase block,
                       prompting for details.
    \[verilog-sk-casez]  Insert a casez (...) item: begin.. end endcase block,
                       prompting for details.
    \[verilog-sk-if]  Insert an if (..) begin .. end block.
    \[verilog-sk-else-if]  Insert an else if (..) begin .. end block.
    \[verilog-sk-comment]  Insert a comment block.
    \[verilog-sk-assign]  Insert an assign .. = ..; statement.
    \[verilog-sk-function]  Insert a function .. begin .. end endfunction block.
    \[verilog-sk-input]  Insert an input declaration, prompting for details.
    \[verilog-sk-output]  Insert an output declaration, prompting for details.
    \[verilog-sk-state-machine]  Insert a state machine definition, prompting for details.
    \[verilog-sk-inout]  Insert an inout declaration, prompting for details.
    \[verilog-sk-wire]  Insert a wire declaration, prompting for details.
    \[verilog-sk-reg]  Insert a register declaration, prompting for details.
    \[verilog-sk-define-signal]  Define signal under point as a register at the top of the module.

All key bindings can be seen in a Verilog-buffer with \[describe-bindings].
Key bindings specific to `verilog-mode-map' are:

\{verilog-mode-map}
(defalias 'verilog-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324!\210\325\f!\210
@\306\326!\210\327\306\330!\210\331\325\f!\210\306\332!\210\333\306\334!\210\335\306\336!\210\337\306\340!\210\341 \306\342!\210\343\"\306\344!\210\345$\306\346!\210\337&\347A\350B\351 \210\352\353!\203\237\354\353\355\307#\210\306\356!\210\357\337\211\211\360\361!?\205\257\327\257.\306\362!\210\3072C\204\324\354\363\364\307\211$\210\354\365\364\307\211$\210\354\366\367\307\211$\210\306\370!\210D8\352\371!\203\3739<\203\373\3119>\203\3659\210\202\373\3119B9\352\372!\203\311:\236\204\373:B:\354\374\375\337\376$\210\354\352\377!\203 \377\202#\201E\201F\337\376$\210)\201G\201H!\207" [delay-mode-hooks major-mode mode-name verilog-mode-map verilog-mode-syntax-table verilog-mode-abbrev-table make-local-variable t prog-mode verilog-mode "Verilog" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table use-local-map set-syntax-table beginning-of-defun-function verilog-beg-of-defun end-of-defun-function verilog-end-of-defun indent-line-function verilog-indent-line-relative comment-indent-function verilog-comment-indent parse-sexp-ignore-comments nil comment-start "// " comment-end "" comment-start-skip "/\\*+ *\\|// *" comment-multi-line 1 verilog-linter verilog-set-compile-command boundp hack-local-variables-hook add-hook verilog-modify-compile-command font-lock-defaults (verilog-font-lock-keywords verilog-font-lock-keywords-1 verilog-font-lock-keywords-2 verilog-font-lock-keywords-3) functionp syntax-ppss font-lock-multiline font-lock-mode-hook verilog-highlight-buffer font-lock-after-fontify-buffer-hook after-change-functions verilog-highlight-region imenu-generic-expression which-func-modes hs-special-modes-alist (verilog-mode "\\<begin\\>" "\\<end\\>" nil verilog-forward-sexp-function) completion-at-point-functions verilog-completion-at-point local write-contents-hooks local-abbrev-table verilog-which-tool verilog-tool noninteractive verilog-imenu-generic-expression write-contents-functions verilog-auto-save-check run-mode-hooks verilog-mode-hook] 6 (#$ . 117623) nil])
#@51 Initialize speedbar to understand `verilog-mode'.
(defalias 'verilog-speedbar-initialize #[0 "\211\205\211@A\301=\203\302@@!\210\211A\262\202\207" [auto-mode-alist verilog-mode speedbar-add-supported-extension] 3 (#$ . 126546)])
(eval-after-load "speedbar" #[0 "\300 \207" [verilog-speedbar-initialize] 1])
#@115 Terminate line and indent next line.
With optional ARG, remove existing end of line comments.

(fn &optional ARG)
(defalias 'electric-verilog-terminate-line #[256 "\212\304 )\3058\203#l\203\306 \210\307 \210\202 \307 \210\310c\210\311 \210\312 \207\3138\203/\307 \210\314 \207l\203\215\212\306 \210\311 \210\315\316w\210\317!\203b\312 	\203O\320\"\210\316\210\306 \210\204\\\307 \210\316\262\202i\316\210\306 \210\321)\203\203\n\322=\204y\n\323=\203}\324\325!\210\307 \210\202\206\326y\210\205\217\312 \207\307 \207" [verilog-auto-end-comment-lines-re verilog-auto-endcomments verilog-auto-lineup verilog-auto-indent-on-newline verilog-syntax-ppss 7 delete-horizontal-space newline "// " beginning-of-line verilog-indent-line 4 verilog-more-comment " 	" nil looking-at verilog-set-auto-endcomments t all assignments verilog-pretty-expr :quiet 1] 6 (#$ . 126869) nil])
#@53 Insert a newline and indent for the next statement.
(defalias 'electric-verilog-terminate-and-indent #[0 "\300\301!\207" [electric-verilog-terminate-line 1] 2 (#$ . 127768) nil])
#@45 Insert `;' character and reindent the line.
(defalias 'electric-verilog-semi #[0 "\301 \210\302 \206\n\303 ?\205%\212\304 \210\305 \210\306 \210)\205%\307 ?\205%\310 \207" [verilog-auto-newline verilog-insert-last-command-event verilog-in-comment-or-string-p verilog-in-escaped-name-p beginning-of-line verilog-forward-ws&directives verilog-indent-line verilog-parenthesis-depth electric-verilog-terminate-line] 1 (#$ . 127953) nil])
#@65 Insert `;' character, reindent the line and indent for comment.
(defalias 'electric-verilog-semi-with-comment #[0 "\300c\210\212\301 \210\302 \210)\303 \207" [";" beginning-of-line verilog-indent-line indent-for-comment] 1 (#$ . 128398) nil])
#@69 Insert `:' and do all indentations except line indent on this line.
(defalias 'electric-verilog-colon #[0 "\300 \210\301\302\303 `\"8\206\304 ??\205&\212`\305 \210`b\210\306!\210\307 \266\202)\207" [verilog-insert-last-command-event 3 parse-partial-sexp line-beginning-position verilog-in-case-region-p verilog-beg-of-statement verilog-backward-case-item verilog-indent-line] 4 (#$ . 128647) nil])
#@70 Insert back-tick, and indent to column 0 if this is a CPP directive.
(defalias 'electric-verilog-tick #[0 "\300 \210\212\301 \205\302 )\207" [verilog-insert-last-command-event verilog-in-directive-p verilog-indent-line] 1 (#$ . 129056) nil])
#@54 Function called when TAB is pressed in Verilog mode.
(defalias 'electric-verilog-tab #[0 "\303 \203\304 \305 =\204\306\304 \305 \307#\207\204#\212\310\307x\210n)\203l`\212\311 \210\310\307w\210\312 \210\313 \210`)`W\203=\313 \207	?\206kl\204I\307\207\314 \210l\205k`U\205k\311 \210\315\n\316#\210\317\224b\210\310\307x\210\320`\"\207\321c\207" [verilog-tab-always-indent verilog-tab-to-comment comment-start-skip region-active-p region-beginning region-end indent-region nil " 	" beginning-of-line verilog-indent-line back-to-indentation indent-for-comment re-search-forward move 0 kill-region "	"] 6 (#$ . 129306) nil])
#@115 Indent-region the entire buffer as Verilog code.
To call this from the command line, see \[verilog-batch-indent].
(defalias 'verilog-indent-buffer #[0 "\300 \210\301 \210\302ed\303#\207" [verilog-mode verilog-auto-reeval-locals indent-region nil] 4 (#$ . 129951) nil])
#@73 Insert Verilog begin ... end; block in the code with right indentation.
(defalias 'verilog-insert-block #[0 "\300 \210\301c\210\302 \210\212\302 \210\303c\210\304 \210\300 )\207" [verilog-indent-line "begin" electric-verilog-terminate-line "end" beginning-of-line] 1 (#$ . 130226) nil])
#@39 Insert Verilog star comment at point.
(defalias 'verilog-star-comment #[0 "\300 \210\301c\210\212\302 \210\303c\210)\302 \210\304c\207" [verilog-indent-line "/*" newline " */" " * "] 1 (#$ . 130519) nil])
#@173 Use format string FMT to insert integers 0 to MAX - 1.
Inserts one integer per line, at the current column.  Stops early
if it reaches the end of the buffer.

(fn FMT MAX)
(defalias 'verilog-insert-1 #[514 "i\300\212\211W\205'\301\"c\210\302y\210m\203\262\202\211T\262\303!\210\202)\207" [0 format 1 move-to-column] 7 (#$ . 130731)])
#@765 Insert a set of indices into a rectangle.
The upper left corner is defined by point.  Indices begin with 0
and extend to the MAX - 1.  If no prefix arg is given, the user
is prompted for a value.  The indices are surrounded by square
brackets [].  For example, the following code with the point
located after the first `a' gives:

    a = b                           a[  0] = b
    a = b                           a[  1] = b
    a = b                           a[  2] = b
    a = b                           a[  3] = b
    a = b   ==> insert-indices ==>  a[  4] = b
    a = b                           a[  5] = b
    a = b                           a[  6] = b
    a = b                           a[  7] = b
    a = b                           a[  8] = b

(fn MAX)
(defalias 'verilog-insert-indices #[257 "\300\301\"\207" [verilog-insert-1 "[%3d]"] 4 (#$ . 131086) "NMAX: "])
#@774 Insert a set of generated numbers into a rectangle.
The upper left corner is defined by point.  The numbers are padded to three
digits, starting with 000 and extending to (MAX - 1).  If no prefix argument
is supplied, then the user is prompted for the MAX number.  Consider the
following code fragment:

    buf buf                             buf buf000
    buf buf                             buf buf001
    buf buf                             buf buf002
    buf buf                             buf buf003
    buf buf   ==> generate-numbers ==>  buf buf004
    buf buf                             buf buf005
    buf buf                             buf buf006
    buf buf                             buf buf007
    buf buf                             buf buf008

(fn MAX)
(defalias 'verilog-generate-numbers #[257 "\300\301\"\207" [verilog-insert-1 "%3.3d"] 4 (#$ . 131969) "NMAX: "])
#@110 Mark the current Verilog function (or procedure).
This puts the mark at the end, and point at the beginning.
(defalias 'verilog-mark-defun #[0 "\300 \207" [mark-defun] 1 (#$ . 132863) nil])
#@454 Put the region into a Verilog comment.
The comments that are in this area are "deformed":
`*)' becomes `!(*' and `}' becomes `!{'.
These deformed comments are returned to normal if you use
\[verilog-uncomment-region] to undo the commenting.

The commented area starts with `verilog-exclude-str-start', and ends with
`verilog-exclude-str-end'.  But if you change these variables,
\[verilog-uncomment-region] won't recognize the comments.

(fn START END)
(defalias 'verilog-comment-region #[514 "\212\211b\210\212\302\303w\210l)\203\212\302\303x\210n)\204\304y\210\202!\305 \210c\210`\262\306 \210b\210\305 \210	c\210\306 \210\211b\210\212\307\310\311#\203K\312\313\311\211#\210\202:)\212T\307\314\311#\205`\312\315\311\211#\210\202O\262*\207" [verilog-exclude-str-end verilog-exclude-str-start " 	" nil 1 beginning-of-line newline re-search-backward "\\*/" t replace-match "*-/" "/\\*" "/-*"] 7 (#$ . 133060) "r"])
#@175 Uncomment a commented area; change deformed comments back to normal.
This command does nothing if the pointer is not in a commented
area.  See also `verilog-comment-region'.
(defalias 'verilog-uncomment-region #[0 "\212``\212\302\303\304#\210`\262\305	\303\304#\210`\262)`\232\204#\211`X\203+\306\307!\266\202\202s\211b\210\310 \210`\303\210\211`T|\266\212\311\312\304#\203M\313\314\304\211#\210\202<)\212\311\315\304#\203`\313\316\304\211#\210\202O)b\210\310 \210`\303\210\211`T|\262\266\202)\207" [verilog-exclude-str-start verilog-exclude-str-end search-backward nil t search-forward message "Not standing within commented area." beginning-of-line re-search-backward "\\*-/" replace-match "*/" "/-\\*" "/*"] 6 (#$ . 133997) nil])
#@70 Move backward to the beginning of the current function or procedure.
(defalias 'verilog-beg-of-defun #[0 "\301\302\303\304#\203*\305 \211\262\203*\306 \203*\307\262\203&`V\202'\310\204\311!\210\312\225\207" [verilog-defun-re nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0] 8 (#$ . 134754) nil])
#@97 Move backward to the beginning of the current function or procedure.
Uses `verilog-scan' cache.
(defalias 'verilog-beg-of-defun-quick #[0 "\301\302\301\211\204'\303#\203'\304\305\224!\203 \303\306\301\307#\210\202\305\224\262\202\207" [verilog-defun-re nil move re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t] 8 (#$ . 135144) nil])
#@63 Move forward to the end of the current function or procedure.
(defalias 'verilog-end-of-defun #[0 "\301\302\303\304#\203*\305 \211\262\203*\306 \203*\307\262\203&`W\202'\310\204\311!\210\312\225\207" [verilog-end-defun-re nil move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data 0] 8 (#$ . 135513) nil])
(defalias 'verilog-get-end-of-defun #[0 "\212\301\302\301\211\204(\303#\203(\304\305\224!\203!\303\306\301\302#\210\202\305\225\262\202\266\203\2031`\2028\307\310\311 \"\210d)\207" [verilog-end-defun-re nil t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" error "%s: Can't find endmodule" verilog-point-text] 8])
#@78 Label matching begin ... end, fork ... join and case ... endcase statements.
(defalias 'verilog-label-be #[0 "\302\303`\304 \210\305 \306 \210\305 \307!b\210\211Z\310V\203 \311\312!\210\307!`V\203\204	\303\313\314\315#\203R\316 \211\262\203R\317 \203R\320\262\203N`W\202O\321\204,\322!\210\302\225\266\204\203\204\302\224b\210\323 \324\321\"\210\303\210\325 \266T\262\326\246\327U\203 \311\330\"\210\202 b\210\211Z\310V\204\225\331V\205\232\311\332\")\207" [case-fold-search verilog-auto-end-comment-lines-re 0 nil verilog-beg-of-defun point-marker verilog-end-of-defun marker-position 200 message "Relabeling module..." move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data verilog-indent-line verilog-set-auto-endcomments delete-horizontal-space 10 9 "%d..." 20 "%d lines auto commented"] 13 (#$ . 136243) nil])
#@42 Move backward to beginning of statement.
(defalias 'verilog-beg-of-statement #[0 "\306o\204\307\310!\204h\311U\204\307\312!\204\307\313!\204#\314\315!\203\307\316!\203E`\262\212\317 \210\307!\203?\307	!\204?`\262)\211b\204\307\n!\203e`\307!\203^`\262\317 \210\211`U\203L\211b\262\204\307\f!\204\212\317 \210\307	!)\204\320 \210\317 \210\202\321 \210\307
!\205\216\322\225b\210\321 \207" [verilog-label-re verilog-end-block-re verilog-complete-reg verilog-extended-complete-re verilog-basic-complete-re verilog-preprocessor-re nil looking-at "`\\w+" 59 "\\w+\\W*:\\W*\\(coverpoint\\|cross\\|constraint\\)" "\\<" forward-word-strictly -1 "\\(\\w+\\W*:\\W*\\)?\\(\\<\\(assert\\|assume\\|cover\\)\\>\\s-+\\<property\\>\\)\\|\\(\\<assert\\>\\)" verilog-backward-token verilog-backward-syntactic-ws verilog-forward-syntactic-ws 0] 4 (#$ . 137160) nil])
#@42 Move backward to beginning of statement.
(defalias 'verilog-beg-of-statement-1 #[0 "\302 \203\303 \210`\30429\305!?\2058`\262\303 \210n\204-h\306U\204-\307 \210\305	!\203
\211b\210\310\304\311\"\210\202
0\210\312 \207" [verilog-complete-reg verilog-ends-re verilog-in-comment-p verilog-backward-syntactic-ws done looking-at 59 verilog-backward-token throw t verilog-forward-syntactic-ws] 4 (#$ . 138047) nil])
#@43 Move forward to end of current statement.
(defalias 'verilog-end-of-statement #[0 "\302\303\304 \203
\305y\210\306u\207\307!\203\310 \207\303f\311=\203 \303u\207\3121\204\3132}\314\305!\210\315 \210l\2036\305y\210\307\316!\203K\317\303w\210\305u\210\320\313`\"\210\202(\212\314\306!\210\307!)\203c\302\224b\210\320\313\303\"\210\202(\307\321!\203q\320\313`\"\210\202(m\203(\320\313`\"\210\202(\211\2620\202\207\210\303\207\205\356\211\204\355\3132\356	\303\322\323\324#\203\274\325 \211\262\203\274\315 \203\274\326\262\203\270`W\202\271\327\204\226\330!\210\302\225\266\305\225\203\316T\202\320S\262m\203\336\320\313`\"\210\202\222\302U\203\222\320\313\331 \"\210\202\222\211\207" [verilog-beg-block-re verilog-end-statement-re 0 nil verilog-in-directive-p 1 -1 looking-at verilog-forward-sexp 125 (error) found forward-sexp verilog-skip-forward-comment-or-string "[ 	]*;" "^;" throw "[ 	]*)" move (nil nil) re-search-forward match-data (nil nil) t store-match-data verilog-end-of-statement] 10 (#$ . 138473) nil])
#@87 Return true if in a case region.
More specifically, point @ in the line foo : @ begin
(defalias 'verilog-in-case-region-p #[0 "\212\300 \210\301\302!\205w\303 \210h\304U\205w\3052w\306\307\310\311\312\313#\203B\314 \211\262\203B\315 \203B\316\262\203>`V\202?\317\204\320!\210\321\225\266\322\225\203V\211T\262\202\323\225\203m\211\306U\203f\324\305\306\"\210\211S\262\202\324\305\321U\"\210\202)\207" [verilog-forward-syntactic-ws looking-at "\\<begin\\>" verilog-backward-syntactic-ws 58 found 1 "\\(\\<module\\>\\)\\|\\(\\<connectmodule\\>\\)\\|\\(\\<randcase\\>\\|\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)\\>" nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 4 3 throw] 9 (#$ . 139542) nil])
#@70 Call `backward-up-list' ARG, ignoring comments and errors.

(fn ARG)
(defalias 'verilog-backward-up-list #[257 "\301\3021
\303!0\202\210\304)\207" [parse-sexp-ignore-comments t (error) backward-up-list nil] 3 (#$ . 140348)])
#@53 Call `forward-sexp' ARG, inside comments.

(fn ARG)
(defalias 'verilog-forward-sexp-cmt #[257 "\301\302!)\207" [parse-sexp-ignore-comments nil forward-sexp] 3 (#$ . 140584)])
#@55 Call `forward-sexp' ARG, ignoring comments.

(fn ARG)
(defalias 'verilog-forward-sexp-ign-cmt #[257 "\301\302!)\207" [parse-sexp-ignore-comments t forward-sexp] 3 (#$ . 140767)])
#@101 Return true if in a generate region.
More specifically, after a generate and before an endgenerate.
(defalias 'verilog-in-generate-region-p #[0 "\300\212\3012\237\211\302U?\205\236\303\304\305\306\307#\2037\310 \211\262\2037\311 \2037\312\262\2033`V\2024\313\204\314!\210\302\225\266\204\205\236\300\225\203N\315\301\300\"\202\230\316\225\203Z\315\301\300\"\202\230\317\225\203g\211S\211\262\202\230\320\225\203t\211T\211\262\202\230\321\225\203\201\211S\211\262\202\230\322\225\203\216\211S\211\262\202\230\323\225\205\236\211S\211\262\205\236\2020\210)\211\302U\207" [1 done 0 "\\<\\(module\\)\\|\\(connectmodule\\)\\|\\(generate\\)\\|\\(endgenerate\\)\\|\\(if\\)\\|\\(case\\)\\|\\(for\\)\\>" nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data throw 2 3 4 5 6 7] 9 (#$ . 140955) nil])
#@41 Return true if between a fork and join.
(defalias 'verilog-in-fork-region-p #[0 "\212\300 \210`)\301\212\211\302U\204]\303\304\305\306#\2038\307 \211\262\2038\310 \2038\311\262\2034`V\2025\312\204\313!\210\302\225\266\204\203]\301\225\203P\211S\211\262\202Z\314\225\203]\211T\211\262\204)\211\302U\207" [verilog-beg-of-defun 1 0 "\\<\\(fork\\)\\|\\(join\\(_any\\|_none\\)?\\)\\>" move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 2] 10 (#$ . 141854) nil])
#@65 Return true if inside an `assert/assume/cover final' statement.
(defalias 'verilog-in-deferred-immediate-final-p #[0 "\300\301!\205\n\302\303\304\"\207" [looking-at "final" verilog-looking-back "\\<\\(?:assert\\|assume\\|cover\\)\\>\\s-+" nil] 3 (#$ . 142405) nil])
#@84 Skip backward to nearest enclosing case item.
Limit search to point LIM.

(fn LIM)
(defalias 'verilog-backward-case-item #[257 "\301\212\302\303\304#\203,\305 \211\262\203,\306 \203,\307\262\203(`V\202)\310\204\311!\210\312\225\266`)\212\313\314\310#)\2054\312\301\211\315W\203\256\316\302\303\304#\203s\305 \211\262\203s\306 \203s\307\262\203o`V\202p\310\204M\311!\210\312\225\266\204\203\256\315\225\203\226T\262\312Y\203C\317\320\321 \"\210\202C\322\225\203\242S\262\202C\323\225\203CT\262\202C\324\301x\210\306 \210`\262\325\301\302\303\304#\203\342\305 \211\262\203\342\306 \203\342\307\262\203\336`V\202\337\310\204\274\311!\210\312\225\266\204\203\315\225\203	\315\225b\210\326 \210\327\330!\203\331 \210\326 \210`\202\312\225b\210\326 \210`\202\317\332!\262{\262\333\334\"\211\262\2031\312O\335P\262\266\203\207" [verilog-endcomment-reason-re nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 search-backward ":" 1 "\\(\\[\\)\\|\\(\\]\\)\\|\\(:\\)" error "%s: Unbalanced [" verilog-point-text 2 3 "	 " "\\<\\(randcase\\|case[zx]?\\)\\>\\|;\\|\\<end\\>" verilog-forward-ws&directives looking-at "(" forward-sexp "Malformed case item" string-match "[ 	]*\\(\\(\n\\)\\|\\(//\\)\\|\\(/\\*\\)\\)" "..."] 14 (#$ . 142678) nil])
#@33 Kill auto comment on this line.
(defalias 'verilog-kill-existing-comment #[0 "\212\300\210`\301 \210\302\303\304#\211\205\211\305Z|\266\202)\207" [nil beginning-of-line search-forward "//" t 2] 5 (#$ . 144072)])
(defconst verilog-directive-nest-re "\\(`else\\>\\)\\|\\(`endif\\>\\)\\|\\(`if\\>\\)\\|\\(`ifdef\\>\\)\\|\\(`ifndef\\>\\)\\|\\(`elsif\\>\\)")
#@422 Add ending comment with given INDENT-STR.
With KILL-EXISTING-COMMENT, remove what was there before.
Insert `// case: 7 ' or `// NAME ' on this line if appropriate.
Insert `// case expr ' if this line ends a case block.
Insert `// ifdef FOO ' if this line ends code conditional on FOO.
Insert `// NAME ' if this line ends a function, task, module,
primitive or interface named NAME.

(fn INDENT-STR KILL-EXISTING-COMMENT)
(defalias 'verilog-set-auto-endcomments #[514 "\212\305\306!\203\211\204\212\307\210\310\311\312 \313#)\204\314\307\211\211\315\225\203&\316\202'\317\307\210\2031\320 \210\321 \210\212\322\314!\210\323U\204\311\307\324\325\326#\203i\327 \211\262\203i\330 \203i\331\262\203e`V\202f\313\204C\332!\210\323\225\266\204\203\311\314\225\203\205\314U\2039\316\262\2029\315\225\203\221T\262\2029\333\225\203\235S\262\2029\334\225\203\251S\262\2029\335\225\203\265S\262\2029\336\225\2039\314U\2039\316\262\323\262\2029\323\225\203\346\323\224\323\225{\262\337\307w\210\340 \210`\262\341\307w\210`\262)\203\342`\"	V\205\343\317{\260c\266\205\202\352\344c\210\345\313!\266\205\202\352\305\346!\205\352\211\204)\212\307\210\310\311\312 \313#)?\205\352@\211\347=?\205\350\305\350\n\351Q!?\205\350\305\n!\205\350\314\225\203\221\313\352\212\353 \210\305\354!\203\\\355\262\307\262\202r\305\356!\203r\323\225b\210\357\323!\317\360 Q\262\307\262)\307\210\203}\320 \210\321 \210\343Pc\210\205\214\345\313!\266\202\202\350\315\225\203y\361\313`\307\211\212\353 \210`\262\323\225\204\301b\210\307\210\203\265\320 \210\321 \210\361c\210\345\313!\202s\212\362 \210`)`\305!\203\347\363\364!\210`\262\360 \262\307\262\365P\262\266\202K\366 \203\211b\210\367!\262`\262\307\262\370P\262\266\202K\211\371 \210`=\203\307\262\372\262\266\202K\305\f!\203\364\323\225\262\357\323!\317P\262\314\225\203[\307\262\212\373 \203R\305\374!\203R\323\225b\210`\262\343\357\323!\317\360 R\262\202U\372\262)\266\202K\315\225\203\f\323\3752\376\307\324\325\326#\203\217\327 \211\262\203\217\330 \203\217\331\262\203\213`V\202\214\313\204i\332!\210\323\225\266\204\205\314\225\203\246\211S\262\202e\315\225\203\262\211T\262\202e\333\225\203\333\211\323U\203e\323\225b\210`\262\307\262\360 \262\377P\262\201@\375\314\"\210\202e\334\225\203e\211\323U\203e\323\225b\210`\262\307\262\360 \262\201AP\262\201@\375\314\"\210\202e0\266\202K\333\225\203\300b\210\323\3752\273\376\307\324\325\326#\203C\327 \211\262\203C\330 \203C\331\262\203?`V\202@\313\204\332!\210\323\225\266\204\205\272\314\225\203Z\211S\262\202\315\225\203f\211T\262\202\333\225\203\217\211\323U\203\323\225b\210`\262\307\262\360 \262\377P\262\201@\375\314\"\210\202\334\225\203\211\323U\203\323\225b\210`\262\307\262\360 \262\201AP\262\201@\375\314\"\210\2020\266\202K\335\225\204\312\336\225\203\336\323\225b\210`\262\307\262\343P\262\266\202K\323\225b\210`\262\307\262\343\360 Q\262\266\202K\366 \203`\262\211b\210\367!\211\262\203\307\262\370P\262\266\202K\201B \203*\307\262\201C\262\266\202K\305\201D!\203I\201E\314!\210\340 \210\307\262\360 \262\343Q\262\266b\210\307\210\203Y\320 \210\321 \210\204i\342\"	V\203lc\210\205s\345\313!)\266\205\202\350\201F\225\2032\323\307\212\3752\201G\307\324\325\326#\203\263\327 \211\262\203\263\330 \203\263\331\262\203\257`V\202\260\313\204\215\332!\210\323\225\266\204\205\334\225\203\326\345\313!\210\201H\262\201@\375\314\"\210\202\207\333\225\203\342T\262\202\207\315\225\203\207S\262\323W\203\207\323\225b\210\307\211\337\307w\210\201I \210`\262\341\307w\210`\262{\266\203\201@\375\314\"\210\202\2070\210)\307\210\203&\320 \210\321 \210\343Pc\266\202\202\350\307\211\211\211\210\203L\327 \201J\201K\"\216\320 \210)\210\321 \210\322 \210\335\225\203d\201L\262\201M\262\202#\336\225\203v\201N\262\201M\262\202#\201O\225\203\205\201P\262\202#\201Q\225\203\224\201R\262\202#\201S\225\203\243\201T\262\202#\201U\225\203\262\201V\262\202#\201F\225\203\301\201W\262\202#\201X\225\203\320\201Y\262\202#\201Z\225\203\337\201[\262\202#\201\\\225\203\356\201]\262\202#\201^\225\203\375\201_\262\202#\201`\225\203\f\201a\262\202#\201b\225\203\201c\262\202#\201d\201e!\210\307\211\212\307\324\325\326#\203P\327 \211\262\203P\330 \203P\331\262\203L`V\202M\313\204*\332!\210\323\225\266\314\225\203\323\337\307w\210\201I \210\305\201f!\203w\323\225b\210\201I \210\203\301\307\324\201g\201h#\203\255\327 \211\262\203\255\201i \203\255\201j\262\203\251`W\202\252\313\204\201\332!\210\323\225\266\204\203\301\323\224b\210\201I \210`\262\341\307w\210`\262{\262\202\334\345\313!\210\201k\262)\266\307\210\343Pc\266\203\262)\207" [verilog-directive-nest-re verilog-minimum-comment-distance verilog-end-block-ordered-re verilog-named-block-re verilog-endcomment-reason-re looking-at "\\(`endif\\)\\|\\(`else\\)" nil search-backward "//" line-beginning-position t 1 2 "!" " " verilog-kill-existing-comment delete-horizontal-space backward-sexp 0 move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) store-match-data 3 4 5 6 "^ 	" verilog-forward-syntactic-ws "a-zA-Z0-9_" count-lines " // " " // unmatched `else, `elsif or `endif" ding "\\<end" declaration "\\(" "\\)[ 	]*:" "UNMATCHED!!" verilog-leap-to-head "\\<randcase\\>" "randcase" "\\(\\(unique0?\\s-+\\|priority\\s-+\\)?case[xz]?\\)" match-string verilog-get-expr " // UNMATCHED !!" verilog-beg-of-defun search-forward ":" " // block: " verilog-in-case-region-p verilog-backward-case-item " // case: " verilog-beg-of-statement "" verilog-continued-line "\\<repeat\\>\\|\\<wait\\>\\|\\<always\\>" skip "\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)\\|\\(\\<if\\>\\)\\|\\(assert\\)" " // else: !if" throw " // else: !assert " verilog-in-fork-region-p " // fork branch" "\\<end\\>" forward-word-strictly 11 "\\<\\(\\(class\\)\\|\\(endclass\\)\\|\\(package\\|primitive\\|\\(macro\\)?module\\)\\)\\>" "unmatched endclass" verilog-forward-ws&directives make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "\\(\\<function\\>\\)\\|\\(\\<\\(endfunction\\|task\\|\\(macro\\)?module\\|primitive\\)\\>\\)" "\\w+\\(?:\n\\|\\s-\\)*[(;]" "\\(\\<task\\>\\)\\|\\(\\<\\(endtask\\|function\\|\\(macro\\)?module\\|primitive\\)\\>\\)" 7 "\\(\\<\\(macro\\)?module\\>\\)\\|\\<endmodule\\>" 8 "\\(\\<primitive\\>\\)\\|\\(\\<\\(endprimitive\\|package\\|interface\\|\\(macro\\)?module\\)\\>\\)" 9 "\\(\\<interface\\>\\)\\|\\(\\<\\(endinterface\\|package\\|primitive\\|\\(macro\\)?module\\)\\>\\)" 10 "\\(\\<package\\>\\)\\|\\(\\<\\(endpackage\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)" "\\(\\<class\\>\\)\\|\\(\\<\\(endclass\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)" 12 "\\(\\<covergroup\\>\\)\\|\\(\\<\\(endcovergroup\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)" 13 "\\(\\<program\\>\\)\\|\\(\\<\\(endprogram\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)" 14 "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<\\(endsequence\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)" 15 "\\(\\<clocking\\>\\)\\|\\<endclocking\\>" 16 "\\(\\<property\\>\\)\\|\\<endproperty\\>" 17 "\\(\\<connectmodule\\>\\)\\|\\<endconnectmodule\\>" error "Problem in verilog-set-auto-endcomments" "static\\|automatic" (nil nil) re-search-forward verilog-skip-forward-comment-or-string (nil nil) "unmatched end(function|task|module|connectmodule|primitive|interface|package|class|clocking)"] 19 (#$ . 144438)])
#@57 Grab expression at point, e.g., case ( a | b & (c ^d)).
(defalias 'verilog-get-expr #[0 "\300 \210\301\302w\210`\303\304\305!\203u\303u\210\300 \210\304\306!\203q\303u\210\211\307U\204q\310\302\311\312\313#\203N\314 \211\262\203N\315 \203N\316\262\203J`W\202K\317\204(\320!\210\307\225\266\204\203q\303\225\203e\211T\262\202\321\225\203\211S\262\202`\202K\304\306!\203\325\303u\210\211\307U\204\321\310\302\311\312\313#\203\256\314 \211\262\203\256\315 \203\256\316\262\203\252`W\202\253\317\204\210\320!\210\307\225\266\204\203\321\303\225\203\305\211T\262\202~\321\225\203~\211S\262\202~`\202K\304\322!\203<\303u\210\211\307U\2041\323\302\311\312\313#\203\314 \211\262\203\315 \203\316\262\203\n`W\202\317\204\350\320!\210\307\225\266\204\2031\303\225\203%\211T\262\202\336\321\225\203\336\211S\262\202\336\300 \210\324\302w\210`\202K\304\325!\203F\202K\326\302w\210`\262{\327\330\"\211\262\203b\211\307O\331P\262\207" [verilog-forward-syntactic-ws " 	" nil 1 looking-at "@" "(" 0 "\\((\\)\\|\\()\\)" move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data 2 "\\[" "\\(\\[\\)\\|\\(\\]\\)" "^ 	\n\f" "/[/\\*]" "^: 	\n\f" string-match "[ 	]*\\(\\(\n\\)\\|\\(//\\)\\|\\(/\\*\\)\\)" "..."] 10 (#$ . 152206)])
#@128 Take a signal vector on the current line and expand it to multiple lines.
Useful for creating tri's and other expanded fields.
(defalias 'verilog-expand-vector #[0 "\300\301\302\"\207" [verilog-expand-vector-internal "[" "]"] 3 (#$ . 153567) nil])
#@90 Given start brace BRA, and end brace KET, expand one line into many lines.

(fn BRA KET)
(defalias 'verilog-expand-vector-internal #[514 "\212\300y\210`\301\210`{\302\303\304!\305\304!\306\260\"\205\304\307\310\"\311\307\312\"!\313\224\313\225U\2032\211\202;\311\313\224T\313\225O!\314\224\314\225U\203G\310\202Q\311\312\314\224\\\314\225O!\307\315\"\301\211\262\300W\203l\262\211\262[\262\210W\203\210X\203\236\316C\"\262Z\262\202rX\203\236\316C\"\262\\\262\202\210`\300y\210`|\210\211\203\277	\317@!\n\320\260c\210\211A\262\202\245\321\322!\266\206\262)\207" [0 nil string-match "\\(.*\\)" regexp-quote "\\([0-9]*\\)\\(:[0-9]*\\|\\)\\(::[0-9---]*\\|\\)" "\\(.*\\)$" match-string 1 string-to-number 2 3 4 5 append int-to-string "\n" delete-char -1] 15 (#$ . 153821)])
#@43 Strip all comments from the Verilog code.
(defalias 'verilog-strip-comments #[0 "eb\210\300\301\302\303#\203:\304\305\306 `\"8\203\300\307\302\303#\210\202\310 \203,\300\311\302\303#\210\202`\312Z\302\210\211`|\266\202eb\210\300\313\302\303#\205g\304\305\306 `\"8\203X\300\307\302\303#\210\202=`\312Z\300\311!\210\211`|\266\202=\207" [re-search-forward "//" nil t 3 parse-partial-sexp line-beginning-position "\"" verilog-in-star-comment-p "\\*/" 2 "/\\*"] 4 (#$ . 154657) nil])
#@58 Convert structural Verilog instances to occupy one line.
(defalias 'verilog-one-line #[0 "eb\210\300\301\302\303#\205\304\305\302\211#\210\202\207" [re-search-forward "\\([^;]\\)[ 	]*\n[ 	]*" nil t replace-match "\\1 "] 4 (#$ . 155159) nil])
#@53 Return name of linter, either surelint or verilint.
(defalias 'verilog-linter-name #[0 "\302\303\304\211\305\306#\203%\307$\262G\305\224G\\^\262\202\266\206\302\303\304\211	\305\306#\203M\307$\262G\305\224G\\^\262\202.\266\206\310\267\202Z\311\207\312\207\211\313\267\202d\311\207\312\207\311\207" [compile-command verilog-linter "\\s .*$" "" nil 0 string-match replace-match #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("surelint" 86 "verilint" 88)) surelint verilint #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("surelint" 96 "verilint" 98))] 12 (#$ . 155411)])
#@358 Convert a Verilog linter warning line into a disable statement.
For example:
        pci_bfm_null.v, line  46: Unused input: pci_rst_
becomes a comment for the appropriate tool.

The first word of the `compile-command' or `verilog-linter'
variables is used to determine which product is being used.

See \[verilog-surelint-off] and \[verilog-verilint-off].
(defalias 'verilog-lint-off #[0 "\300 \211\301\267\202\302 \207\303 \207\304\305!\207" [verilog-linter-name #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (surelint 8 verilint 11)) verilog-surelint-off verilog-verilint-off error "Linter name not set"] 3 (#$ . 156107) nil])
#@295 Convert a SureLint warning line into a disable statement.
Run from Verilog source window; assumes there is a *compile* buffer
with point set appropriately.

For example:
        WARNING [STD-UDDONX]: xx.v, line 8: output out is never assigned.
becomes:
        // surefire lint_line_off UDDONX
(defalias 'verilog-surelint-off #[0 "\303\300!\203\n\202	\304!\205\270\212\305!\210\306 \210\307\310!\205\267\311\312!\311\313!\311\314!\315!\211\204Y\316!\2058\317!\262\211\204Y\320\321\322\323\324\"\325\320$!\316!\205V\317!\266\202)\305!\210eb\210\326![y\210\325\210\3272\265\330 \203\236\331\332!\210\307\333!\203\232\334\225b\210\335 \336\337#\203\221\340\327\320\"\202\225\341Pc\262\202\264\320\202\264\342 \203\257\331\343!\210\323\344\"c\202\264\323\344\"c0\266\204)\207" [next-error-last-buffer compilation-last-buffer pop-up-windows boundp buffer-live-p switch-to-buffer beginning-of-line looking-at "\\(INFO\\|WARNING\\|ERROR\\) \\[[^-]+-\\([^]]+\\)\\]: \\([^,]+\\), line \\([0-9]+\\): \\(.*\\)$" match-string 2 3 4 get-file-buffer file-exists-p find-file-noselect t expand-file-name read-file-name format "Find this error in: (default %s) " nil string-to-number already verilog-in-slash-comment-p re-search-backward "//" "// surefire lint_off_line " 0 line-end-position re-search-forward move throw " " verilog-in-star-comment-p "/\\*" " // surefire lint_off_line %6s"] 11 (#$ . 156785) nil])
#@199 Convert a Verilint warning line into a disable statement.

For example:
        (W240)  pci_bfm_null.v, line  46: Unused input: pci_rst_
becomes:
        //Verilint 240 off // WARNING: Unused input
(defalias 'verilog-verilint-off #[0 "\212\300 \210\301\302!\205\303\304\305\306\307!\"!\210\300 \210\310 )\207" [beginning-of-line looking-at "\\(.*\\)([WE]\\([0-9A-Z]+\\)).*,\\s +line\\s +[0-9]+:\\s +\\([^:\n]+\\).*$" replace-match format "\\1//Verilint %3s off // WARNING: \\3" match-string 2 verilog-indent-line] 5 (#$ . 158231) nil])
#@71 Update automatics with \[verilog-auto], save the buffer, and compile.
(defalias 'verilog-auto-save-compile #[0 "\301 \210\302 \210\303!\207" [compile-command verilog-auto save-buffer compile] 2 (#$ . 158775) nil])
#@250 Preprocess the buffer, similar to `compile', but put output in Verilog-Mode.
Takes optional COMMAND or defaults to `verilog-preprocessor', and
FILENAME to find directory to run in, or defaults to `buffer-file-name'.

(fn &optional COMMAND FILENAME)
(defalias 'verilog-preprocess #[512 "\204	\306!\262	\307\206\n!\310\311Rr\312\313!q\210p\314 \210\315\211\316\211\316\317 \210\320\321!\210+\211r\322\313!q\210\323\324Qc\210\325\315\316\315&\210\326 \210\327\330!?\205d\205d\331 )\332!\210)\207" [verilog-preprocessor font-lock-mode buffer-file-name default-directory buffer-read-only buffer-undo-list verilog-expand-command file-name-directory "cd " "; " get-buffer-create "*Verilog-Preprocessed*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook get-buffer "// " "\n" call-process verilog-mode fboundp font-lock-ensure font-lock-fontify-buffer internal-temp-output-buffer-show inhibit-modification-hooks inhibit-read-only standard-output shell-file-name shell-command-switch] 15 (#$ . 158997) (byte-code "\301!\302\300!\210\303\304\305\211\306&\211\262C\207" [verilog-preprocessor verilog-expand-command make-local-variable read-from-minibuffer "Run Preprocessor (like this): " nil verilog-preprocess-history] 8)])
#@87 Print a warning with `format' using STRING and optional ARGS.

(fn STRING &rest ARGS)
(defalias 'verilog-warn #[385 "\300\301\302P#\207" [apply message "%%Warning: "] 6 (#$ . 160287)])
#@135 Call `error' using STRING and optional ARGS.
If `verilog-warn-fatal' is non-nil, call `verilog-warn' instead.

(fn STRING &rest ARGS)
(defalias 'verilog-warn-error #[385 "\301\203	\302\202\n\303#\207" [verilog-warn-fatal apply error verilog-warn] 6 (#$ . 160481)])
#@145 Execute BODY and add error prefix to any errors found.
This lets programs calling batch mode to easily extract error messages.

(fn &rest BODY)
(defalias 'verilog-batch-error-wrapper '(macro . #[128 "\300\301\302\303\304B\305BBBE\207" [let ((verilog-warn-fatal nil)) condition-case err progn ((error (error "%%Error: %s%s" (error-message-string err) (if (featurep 'xemacs) "\n" ""))))] 7 (#$ . 160758)]))
#@156 Internal processing of a batch command.
Runs FUNREF on all command arguments.
Save the result unless optional NO-SAVE is t.

(fn FUNREF &optional NO-SAVE)
(defalias 'verilog-batch-execute-func #[513 "\305\3061-\305\307\301\305\"\210\310\211\305\307\311\312\"\210\313 \314\315\"\210\314\316\317#\"\2620\2026\320\321\322!\323#\262)\207" [verilog-warn-fatal make-backup-files enable-local-variables enable-local-eval create-lockfiles nil (error) set-default t major-mode verilog-mode buffer-list mapc #[257 "\301!\205 r\211q\210\302\300!\210\303 \304\300\305\306#\210\307 \210\310 \210\311 )\207" [verilog-batch-orig-buffer-string buffer-file-name make-local-variable buffer-string put permanent-local t verilog-mode verilog-auto-reeval-locals verilog-getopt-flags] 5 "\n\n(fn BUF)"] make-closure #[257 "\303!\205;\304\303!!\204\305\306\303!\"\210\307\310\303!\"\210r\211q\210\300 \210\311 \210\301?\205:\312 \205:\n\313 \232?\205:\314 )\207" [V0 V1 verilog-batch-orig-buffer-string buffer-file-name file-exists-p error "File not found: %s" message "Processing %s" verilog-star-cleanup buffer-modified-p buffer-string save-buffer] 5 "\n\n(fn BUF)"] error "%%Error: %s%s" error-message-string ""] 9 (#$ . 161171)])
#@317 For use with --batch, perform automatic expansions as a stand-alone tool.
This sets up the appropriate Verilog mode environment, updates automatics
with \[verilog-auto] on all command-line files, and saves the buffers.
For proper results, multiple filenames need to be passed on the command
line in bottom-up order.
(defalias 'verilog-batch-auto #[0 "\204\301\302!\210\303\304!\207" [noninteractive error "Use verilog-batch-auto only with --batch" verilog-batch-execute-func verilog-auto] 2 (#$ . 162416)])
#@225 For use with --batch, perform automatic deletion as a stand-alone tool.
This sets up the appropriate Verilog mode environment, deletes automatics
with \[verilog-delete-auto] on all command-line files, and saves the buffers.
(defalias 'verilog-batch-delete-auto #[0 "\204\301\302!\210\303\304!\207" [noninteractive error "Use verilog-batch-delete-auto only with --batch" verilog-batch-execute-func verilog-delete-auto] 2 (#$ . 162933)])
#@241 For use with --batch, perform whitespace deletion as a stand-alone tool.
This sets up the appropriate Verilog mode environment, removes
whitespace with \[verilog-delete-trailing-whitespace] on all
command-line files, and saves the buffers.
(defalias 'verilog-batch-delete-trailing-whitespace #[0 "\204\301\302!\210\303\304!\207" [noninteractive error "Use verilog-batch-delete-trailing-whitespace only with --batch" verilog-batch-execute-func verilog-delete-trailing-whitespace] 2 (#$ . 163379)])
#@356 For use with --batch, perform automatic differences as a stand-alone tool.
This sets up the appropriate Verilog mode environment, expand automatics
with \[verilog-diff-auto] on all command-line files, and reports an error
if any differences are observed.  This is appropriate for adding to regressions
to insure automatics are always properly maintained.
(defalias 'verilog-batch-diff-auto #[0 "\204\301\302!\210\303\304\305\"\207" [noninteractive error "Use verilog-batch-diff-auto only with --batch" verilog-batch-execute-func verilog-diff-auto t] 3 (#$ . 163886)])
#@327 For use with --batch, perform automatic injection as a stand-alone tool.
This sets up the appropriate Verilog mode environment, injects new automatics
with \[verilog-inject-auto] on all command-line files, and saves the buffers.
For proper results, multiple filenames need to be passed on the command
line in bottom-up order.
(defalias 'verilog-batch-inject-auto #[0 "\204\301\302!\210\303\304!\207" [noninteractive error "Use verilog-batch-inject-auto only with --batch" verilog-batch-execute-func verilog-inject-auto] 2 (#$ . 164464)])
#@206 For use with --batch, reindent an entire file as a stand-alone tool.
This sets up the appropriate Verilog mode environment, calls
\[verilog-indent-buffer] on all command-line files, and saves the buffers.
(defalias 'verilog-batch-indent #[0 "\204\301\302!\210\303\304!\207" [noninteractive error "Use verilog-batch-indent only with --batch" verilog-batch-execute-func verilog-indent-buffer] 2 (#$ . 165012)])
(defconst verilog-indent-alist '((block + ind verilog-indent-level) (case + ind verilog-case-indent) (cparenexp + ind verilog-indent-level) (cexp + ind verilog-cexp-indent) (defun . verilog-indent-level-module) (declaration . verilog-indent-level-declaration) (directive verilog-calculate-indent-directive) (tf . verilog-indent-level) (behavioral + verilog-indent-level-behavioral verilog-indent-level-module) (statement . ind) (cpp . 0) (comment verilog-comment-indent) (unknown . 3) (string . 0)))
#@112 Return true if this is a continued line.
Set point to where line starts.  Limit search to point LIM.

(fn LIM)
(defalias 'verilog-continued-line-1 #[257 "\300\301y\302=\203\303\210\304!\210o\203\303\207\305 \207\303\207" [t -1 0 nil verilog-backward-ws&directives verilog-backward-token] 4 (#$ . 165931)])
#@257 Calculate the indent of the current Verilog line.
Examine previous lines.  Once a line is found that is definitive as to the
type of the current line, return that lines' indent level and its type.
Return a list of two elements: (INDENT-TYPE INDENT-LEVEL).
(defalias 'verilog-calculate-indent #[0 "\212`\306\307\310\311!\212\312\306\313\314\315#\2033\316 \211\262\2033\317 \2033\320\262\203/`V\2020\313\204
\321!\210\307\225\266\204)\306\3222\214\323 \203K\324\322\325\"\210\212\326 \210\310	!\205_\310\327!\206^\310\330!?)\203h\324\322\331\"\210\332 \262\211\203\211\211\307V\203~\324\322\333\"\210\202\211\211\307U\203\211\324\322\334\"\210\n\203\237\335 \203\237\336 \204\237\337\262\324\322\334\"\210o\203\250\324\322\340\"\210\341!\203\336 \203\271\310!\203`\310\f!\204\321\341!\203\321\211b\210\324\322\342\"\210\202\324\211b\210\336 \203\353\310!\203\353\326 \210\343\306w\210\324\322\344\"\210\203\n
\204\n\310@!\203\n\326 \210\343\306w\210\324\322\345\"\266\202\324\322\342\"\266\202b\210\310\346!\203\200\337A\306\347\314\315#\203H\316 \211\262\203H\317 \203H\320\262\203D`V\202E\313\204\"\321!\210\307\225\266\204\203\337\225\203_\211T\262\202\350\225\203\211\211S\262\211\307U\203B\203{\324\322\345\"\210\202\326 \210\351 \210\324\322\345\"\210\202\352\225\203\254\211S\262\353 \210\310C!\203\244\324\322\345\"\210\202\324\322\334\"\210\202\306\337\354\225\203\271\355\262\202\356\225\203\304\357\262\202\360\225\203\317\361\262\202\362\225\203\332\363\262\202\364\225\203\345\365\262\202\366\225\203\360\367\262\202\370\225\203\373\371\262\202\372\225\203\373\262\202\374\225\203\375\262\202\376\225\203\377\262\201D2z\306\347\314\315#\203I\316 \211\262\203I\317 \203I\320\262\203E`V\202F\313\204#\321!\210\307\225\266\204\205y\337\225\203m\211S\262\211\307U\203\324\201D\337\"\210\202\350\225\203\211T\262\2020\266\202\210\324\322\201E \"\210\202\2370\211\204\223\340\262\307V\203\241\201FD\202\320\211\201G\267\202\312\211\201H D\202\320\211iD\202\320\211\307D\202\320\334iD\202\320\334D\202\320\211\201I D)\266\206)\207" [case-fold-search verilog-directive-re-1 verilog-indent-lists verilog-in-constraint-re verilog-complete-reg verilog-indent-begin-after-if nil 0 looking-at "[ 	]*begin\\>" "\\(\\<begin\\>\\)\\|\\(\\<\\(connect\\)?module\\>\\)" t (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) store-match-data nesting verilog-in-star-comment-p throw comment beginning-of-line "[ 	]*`[ou]vm_" "[ 	]*`vmm_" directive verilog-in-struct-nested-p nested-struct block verilog-in-paren verilog-in-coverage-p 1 cpp verilog-continued-line-1 cexp " 	" constraint statement "\\<else\\>" move 2 verilog-forward-syntactic-ws 3 verilog-beg-of-statement 4 "\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)" 5 "\\(\\<randcase\\>\\|\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)" 6 "\\(\\<function\\>\\)\\|\\(\\<endfunction\\>\\)" 7 "\\(\\<task\\>\\)\\|\\(\\<endtask\\>\\)" 8 "\\(\\<specify\\>\\)\\|\\(\\<endspecify\\>\\)" 9 "\\(\\<table\\>\\)\\|\\(\\<endtable\\>\\)" 10 "\\(\\<generate\\>\\)\\|\\(\\<endgenerate\\>\\)" 11 "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|none\\)?\\>\\)" 12 "\\(\\<class\\>\\)\\|\\(\\<endclass\\>\\)" 13 "\\(\\<covergroup\\>\\)\\|\\(\\<endgroup\\>\\)" verilog-no-indent-begin-re verilog-ends-re verilog-align-ifelse verilog-property-re skip verilog-calc-1 cparenexp #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (case 681 statement 690 defun 696 constraint 702 nested-struct 708)) verilog-case-indent-level verilog-current-indent-level] 16 (#$ . 166250)])
#@44 Show matching nesting block for debugging.
(defalias 'verilog-wai #[0 "\212\301 \302\204\303\262\203$\304 \204$\305 \204$\306 \203$\307\262\202A\310\267\202=\311 \262\202Ai\262\202A\312\262\202A\313 \262\314\315#\266\202)\207" [verilog-indent-lists verilog-calc-1 nil cpp verilog-in-coverage-p verilog-in-struct-p verilog-in-paren 1 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (case 42 statement 49 defun 55)) verilog-case-indent-level 0 verilog-current-indent-level message "You are at nesting %s depth %d"] 6 (#$ . 169993) nil])
(defalias 'verilog-calc-1 #[0 "\3062\321\307\310Q\311 \312\313\314\315#\2034\316 \211\262\2034\317 \2034\320\262\2030`V\2021\321\204\322!\210\323\225\266\204\203\312\3242\306\312f\325=\203i\326 \205\305\211\203b\327\312!\210\330\312w\210\331\306\332\"\202\305\331\306\333\"\202\305\312f\334=\203\232\312\335 \211\205\225\336 \323V\203\201\337u\210\340 \262\203\223b\210\337u\266\202\202\305\341u\266\202\202\305\342	!\203c\343\225\203\303`\344 \210\342\n!\203\270\331\306\345\"\266\202\274\211b\266\331\306\345\"\202\305\346\225\203\337`\344 \210\342!?\205\332\211b\210\331\306\347\"\262\202\305\350\225\203`\351 \206\374\212\344 \210\342\f!)\206\374\211b\210\331\306\347\"\262\202\305\342\352!\203>\344 \210\342
!\203\331\324\353\"\202\305\342\354!\204#\342\355!\203*\331\306\333\"\202\305\342	!\2037\331\306\347\"\202\305\331\306\356\"\202\305\342\357!\203\\\344 \210\3426!\203U\331\324\333\"\202\305\331\306\347\"\202\305\331\306\347\"\202\305\3427!\203\202\360 \210\361 \205\305\362 \210\342\n!\205\305\331\306\345\"\202\305\3428!\203\257\3429!\203\250\363 \204\232\364 \203\241\331\324\353\"\202\305\331\306\356\"\202\305\331\306\356\"\202\305\342:!\203\275\331\306\365\"\202\305o\205\305\331\306\365\"0\210\202\n\331\306\365\"\266\2020\207" [verilog-indent-re verilog-beg-block-re-ordered verilog-extended-case-re verilog-disable-fork-re verilog-default-clocking-re verilog-dpi-import-export-re nesting "\\({\\|}\\|" "\\)" verilog-in-coverage-p nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 continue 123 verilog-at-constraint-p beginning-of-line " 	" throw constraint statement 125 verilog-at-close-constraint-p verilog-in-paren-count 1 verilog-parenthesis-depth -1 looking-at 2 verilog-beg-of-statement case 4 block 17 verilog-in-paren "\\<class\\|struct\\|function\\|task\\>" foo "\\<pure\\>\\s-+\\<virtual\\>\\s-+\\(?:\\<\\(local\\|protected\\|static\\)\\>\\s-+\\)?\\<\\(function\\|task\\)\\>\\s-+" "\\<typedef\\>\\s-+\\(?:\\<virtual\\>\\s-+\\)?\\<class\\>\\s-+" defun "\\<property\\>" verilog-leap-to-head verilog-in-case-region-p verilog-leap-to-case-head verilog-in-generate-region-p verilog-in-deferred-immediate-final-p cpp verilog-property-re verilog-end-block-re verilog-defun-level-re verilog-defun-level-generate-only-re verilog-cpp-level-re] 10])
#@145 Return indentation level for directive.
For speed, the searcher looks at the last directive, not the indent
of the appropriate enclosing block.
(defalias 'verilog-calculate-indent-directive #[0 "\305\306\212\307 \210\306W\203\205\310\311\312\313#\2036\314 \211\262\2036\315 \2036\316\262\2032`V\2023\311\204\317!\210\306\225\266\204\203\205\212\320\310x\210n)\203O\321 \262\322	!\203c\306W\203c\211\nZ\262\202\322!\203w\306Y\203w\211\n\\\262\202\322\f!\203\211\n\\\262\202\306\\]\262)\212\307 \210\320\310w\210\322!\204\241\322	!\203\250\306\nZ]\262)\207" [verilog-directive-re verilog-directive-end verilog-indent-level-directive verilog-directive-middle verilog-directive-begin -1 0 beginning-of-line nil t (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) store-match-data " 	" current-indentation looking-at] 10 (#$ . 173021)])
(defalias 'verilog-leap-to-case-head #[0 "\301\211\302U?\205n\303\304\305\306\307#\2032\310 \211\262\2032\311 \2032\312\262\203.`V\202/\313\204\f\314!\210\302\225\266\301\225\203T`\315 \210\316!\204L\211b\210\210\211S\262\202\317\225\203`\211T\262\202o\203\320\313!\210\302\262\202\207" [verilog-extended-case-re 1 0 "\\(\\<randcase\\>\\|\\(\\<unique0?\\s-+\\|priority\\s-+\\)?\\<case[xz]?\\>\\)\\|\\(\\<endcase\\>\\)" nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data verilog-beg-of-statement looking-at 3 ding] 9])
#@114 Move point to the head of this block.
Jump from end to matching begin, from endcase to matching case, and so on.
(defalias 'verilog-leap-to-head #[0 "\306\211\307\310\311\312!\203\313\262\202\355\311\314!\203\315\262\316\262\202\355\311\317!\2033\3202,\321 0\210\306\262\202\355\311\322!\203?\323\262\202\355\311\324!\203K\325\262\202\355\311\326!\203W\327\262\202\355\311\330!\203c\331\262\202\355\311\332!\203r\333\262\316\262\202\355\311\334!\203~\335\262\202\355\311\336!\203\212\337\262\202\355\311\340!\203\226\341\262\202\355\311!\203\250\342	\343\344\260\262\202\355\311\n!\203\272\342\343\n\344\260\262\202\355\311\f!\203\314\342
\343\f\344\260\262\202\355\311\345!\203\330\346\262\202\355\311\347!\203\344\350\262\202\355\311\351!\203\355\352\262\205\365\3532\365\307=\203\254\306\306\354\355\356#\203&\357 \211\262\203&\360 \203&\361\262\203\"`V\202#\362\204\363!\210\364\225\266\204\205\247\310\225\203q\311\365!\203R`\366 \210\311<!\204N\211b\210S\262\210\202VS\262\364U\203a\367\353\310\"\210\203\374U\203\374\211\262\202\374\370\225\203}T\262\202\374\371\225\203\222\262T\262\262\372\262\202\374\373\225\203\374\262T\262\262\323\262\202\374\262\202\364\306\354\355\356#\203\326\357 \211\262\203\326\360 \203\326\361\262\203\322`V\202\323\362\204\260\363!\210\364\225\266\204\203\360\310\225\203\360\366 \210\367\353\310\"\202\364\367\353\310\"0\207" [verilog-uvm-end-re verilog-uvm-begin-re verilog-ovm-end-re verilog-ovm-begin-re verilog-vmm-end-re verilog-vmm-begin-re nil yes 1 looking-at "\\<end\\>" "\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)\\|\\(\\<endcase\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" "\\<endtask\\>" "\\(\\<task\\>\\)\\|\\(\\(\\<\\(virtual\\|protected\\|static\\)\\>\\s-+\\)+\\<task\\>\\)" no "\\<endcase\\>" nesting verilog-leap-to-case-head "\\<join\\(_any\\|_none\\)?\\>" "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" "\\<endclass\\>" "\\(\\<class\\>\\)\\|\\(\\<endclass\\>\\)" "\\<endtable\\>" "\\(\\<table\\>\\)\\|\\(\\<endtable\\>\\)" "\\<endspecify\\>" "\\(\\<specify\\>\\)\\|\\(\\<endspecify\\>\\)" "\\<endfunction\\>" "\\(\\<function\\>\\)\\|\\(\\(\\<\\(virtual\\|protected\\|static\\)\\>\\s-+\\)+\\<function\\>\\)" "\\<endgenerate\\>" "\\(\\<generate\\>\\)\\|\\(\\<endgenerate\\>\\)" "\\<endgroup\\>" "\\(\\<covergroup\\>\\)\\|\\(\\<endgroup\\>\\)" "\\<endproperty\\>" "\\(\\<property\\>\\)\\|\\(\\<endproperty\\>\\)" "\\(" "\\|" "\\)" "\\<endinterface\\>" "\\(\\<interface\\>\\)\\|\\(\\<endinterface\\>\\)" "\\<endsequence\\>" "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<endsequence\\>\\)" "\\<endclocking\\>" "\\(\\<clocking\\)\\|\\(\\<endclocking\\>\\)" skip move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 "fork" verilog-beg-of-statement throw 2 3 "\\(\\<randcase\\>\\|\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)" 4 verilog-disable-fork-re] 13 (#$ . 174563)])
#@74 Return true if this is a continued line.
Set point to where line starts.
(defalias 'verilog-continued-line #[0 "\300\301y\302=\203)\303\210\304 \210o\203\303\207\211\203,\212\305\303x\210n)\204,\306 \262\202\303\262\207" [t -1 0 nil verilog-backward-ws&directives " 	" verilog-backward-token] 3 (#$ . 177596)])
#@66 Step backward token, returning true if this is a continued line.
(defalias 'verilog-backward-token #[0 "\306 \210n\203	\307\207h\310U\203\307\207h\311U\203\312u\210\313 ?\207h\314U\203+\312u\210\315 ?\207h\316U\2039\312u\210\317 \210\307\207h\320U\203G\312u\210\321 \210\322\207h\323U\203\333\312u\210\324\325!\210\306 \210`\326\312!\210\327\330!\203g\327\331!?\207\327!\203o\307\207\327	!\203w\322\207\327\n!\203\322\207\327!\203\207\307\207\327\f!\203\217\322\207\327
!\203\227\322\207\327%!\203\240\307\207\327&!\203\251\322\207\327'!\203\262\307\207\327\332!\203\272\307\207\211b\210h\333U\203\320\312u\210\212\334 \210\327\335!)?\207h\336U\203\331\312u\207\322\207\326\312!\210h\337U\204\361h\333U\204\361h\340U\203\370\326\312!\210\202\337\327\341!\203\322\207\327(!\203	\322\207\327)!\203\307\207`\306 \210h\342U\203/\312u\210\306 \210\343 \210\327*!?\205I\322\207h\336U\203:\312u\210\322\207h\344U\203E\312u\210\322\207\211b\210\322\207" [verilog-uvm-statement-re verilog-uvm-begin-re verilog-uvm-end-re verilog-ovm-statement-re verilog-ovm-begin-re verilog-ovm-end-re verilog-backward-syntactic-ws nil 59 125 -1 verilog-at-close-constraint-p 123 verilog-at-constraint-p 34 verilog-skip-backward-comment-or-string 93 verilog-backward-open-bracket t 41 verilog-backward-up-list 1 forward-word-strictly looking-at "\\<\\(always\\(_latch\\|_ff\\|_comb\\)?\\|case\\(\\|[xz]\\)\\|for\\(\\|each\\|ever\\)\\|i\\(f\\|nitial\\)\\|repeat\\|while\\)\\>" "\\<randcase\\>\\|\\<case[xz]?\\>[^:]" "\\<`" 64 verilog-backward-token "\\<\\(always\\(_latch\\|_ff\\|_comb\\)?\\|initial\\|while\\)\\>" 35 95 46 "\\<else\\>" 58 backward-sexp 96 verilog-vmm-statement-re verilog-vmm-begin-re verilog-vmm-end-re verilog-behavioral-block-beg-re verilog-indent-re verilog-nameable-item-re] 3 (#$ . 177923) nil])
#@70 Move backwards putting point after first non-whitespace non-comment.
(defalias 'verilog-backward-syntactic-ws #[0 "\300 \210\301\302 [!\207" [verilog-skip-backward-comments forward-comment buffer-size] 2 (#$ . 179767)])
#@71 As with `verilog-backward-syntactic-ws' but use `verilog-scan' cache.
(defalias 'verilog-backward-syntactic-ws-quick #[0 "o\203\300\207\301\302!\303W\204h\304=\203\305u\210\202\306`S!\204'\306`!\2050\307\310\300\311#\210\202\207" [nil skip-syntax-backward " " 0 10 -1 verilog-inside-comment-or-string-p re-search-backward "[/\"]" t] 4 (#$ . 179993)])
(defalias 'verilog-forward-syntactic-ws #[0 "\300 \210\301\302 !\207" [verilog-skip-forward-comment-p forward-comment buffer-size] 2])
#@131 Backward skip over syntactic whitespace and compiler directives for Emacs 19.
Optional BOUND limits search.

(fn &optional BOUND)
(defalias 'verilog-backward-ws&directives #[256 "\214\211\206e\211\302`W\205\323\212\303 )\3048\203R\305\302\306\307\310#\203B\311 \211\262\203B\312 \203B\313\262\203>`V\202?\314\204\315!\210\316\225\266\317\302x\266\202\213\3208\203\212\321\302\306\307\310#\203\202\311 \211\262\203\202\312 \203\202\313\262\203~`V\202\314\204\\\315!\210\316\225\266\210`}\210`U?\205\323`\262\322 \210\212\323 \210\324\325\302\"\203\254\326y\204\240\203\273\327 \203\273\330e!\202\306\331	!\203\305`\202\306\302)\262\211\203\217\211b\210\202\217\266\203)\207" [verilog-highlight-translate-off verilog-directive-re-1 nil verilog-syntax-ppss 7 "//" move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 "/" 4 "/\\*" verilog-skip-backward-comments beginning-of-line verilog-looking-back "\\\\[\n
\f]" -1 verilog-within-translate-off verilog-back-to-start-translate-off looking-at] 13 (#$ . 180498)])
#@130 Forward skip over syntactic whitespace and compiler directives for Emacs 19.
Optional BOUND limits search.

(fn &optional BOUND)
(defalias 'verilog-forward-ws&directives #[256 "\214\211\206d\211\301`V\205\230\212\302 )\3038\203&\301\210\304u\210\305\301w\266\202_\3068\203^\307\301\310\311\312#\203V\313 \211\262\203V\314 \203V\315\262\203R`W\202S\316\2040\317!\210\320\225\266\210`}\210`U?\205\230`\262\301\262\321\322 !\210\323\324!\203\320\225b\210\212\325 \210\323!\203\214\316\262)\211\203c\325\326!\210\202c\266\203)\207" [verilog-directive-re-1 nil verilog-syntax-ppss 7 1 " 	\n\f" 4 "\\*/\\s-*" move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data 0 forward-comment buffer-size looking-at "\\s-*(\\*.*\\*)\\s-*" beginning-of-line 2] 13 (#$ . 181635)])
#@41 Return true if in a star or // comment.
(defalias 'verilog-in-comment-p #[0 "\212\300 )\3018\206
\3028\207" [verilog-syntax-ppss 4 7] 3 (#$ . 182498)])
#@35 Return true if in a star comment.
(defalias 'verilog-in-star-comment-p #[0 "\212\300 )\3018\205\3028?\207" [verilog-syntax-ppss 4 7] 3 (#$ . 182659)])
#@36 Return true if in a slash comment.
(defalias 'verilog-in-slash-comment-p #[0 "\212\300 )\3018\207" [verilog-syntax-ppss 7] 3 (#$ . 182820)])
#@40 Return true if in a string or comment.
(defalias 'verilog-in-comment-or-string-p #[0 "\212\300 )\3018\206\3028\206\3038\207" [verilog-syntax-ppss 3 4 7] 3 (#$ . 182968)])
#@61 Return true if point is in an attribute (* [] attribute *).
(defalias 'verilog-in-attribute-p #[0 "\300 \301\302\"\216\212\303\304\305\306\307#\2032\300 \211\262\2032\310 \2032\311\262\203.`V\202/\312\204\f\313!\210\314\225\266\315\225\203K\315\225b\210\316\317!\210\304\202]\320\225\203\\\320\224b\210\316\321!\210\304\202]\304*\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "\\((\\*\\)\\|\\(\\*)\\)" nil move (nil nil) re-search-backward verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 1 looking-at "\\s-*)" 2 "(\\s-*"] 9 (#$ . 183152)])
#@67 Return true if point is in a parameter assignment #( p1=1, p2=5).
(defalias 'verilog-in-parameter-p #[0 "\300 \301\302\"\216\212\303\304\305\306\307#\2032\300 \211\262\2032\310 \2032\311\262\203.`V\202/\312\204\f\313!\210\314\225\266\315\224*\247\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "\\(#(\\)\\|\\()\\)" nil move (nil nil) re-search-backward verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 1] 9 (#$ . 183783)])
#@36 Return true if in an escaped name.
(defalias 'verilog-in-escaped-name-p #[0 "\212\300u\210\301\302x\210`f\303=\205\304)\207" [-1 "^ 	\n\f" nil 92 t] 2 (#$ . 184291)])
#@32 Return true if in a directive.
(defalias 'verilog-in-directive-p #[0 "\212\301 \210\302!)\207" [verilog-directive-re-1 beginning-of-line looking-at] 2 (#$ . 184466)])
#@58 Return true if in a ( ) expression (but not { } or [ ]).
(defalias 'verilog-in-parenthesis-p #[0 "\300 \301\302\"\216\212\303\304\305\306\307#\2032\300 \211\262\2032\310 \2032\311\262\203.`V\202/\312\204\f\313!\210\314\225\266\315\224*\247\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "\\((\\)\\|\\()\\)" nil move (nil nil) re-search-backward verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 1] 9 (#$ . 184640)])
#@93 Return true if in a parenthetical expression.
May cache result using `verilog-syntax-ppss'.
(defalias 'verilog-in-paren #[0 "\212\300 )\211@\301V\207" [verilog-syntax-ppss 0] 3 (#$ . 185140)])
#@79 Return paren depth, floor to 0.
May cache result using `verilog-syntax-ppss'.
(defalias 'verilog-in-paren-count #[0 "\212\300 )\211@\301V\203\211@\207\301\207" [verilog-syntax-ppss 0] 3 (#$ . 185339)])
#@117 Return true if in a parenthetical expression.
Always starts from `point-min', to allow inserts with hooks disabled.
(defalias 'verilog-in-paren-quick #[0 "\212\300e`\")\211@\301V\207" [parse-partial-sexp 0] 3 (#$ . 185550)])
#@41 Return true if in a struct declaration.
(defalias 'verilog-in-struct-p #[0 "\212\300 \205\f\301\302!\210\303 )\207" [verilog-in-paren verilog-backward-up-list 1 verilog-at-struct-p] 2 (#$ . 185781) nil])
#@95 Return nil for not in struct.
Return 0 for in non-nested struct.
Return >0 for nested struct.
(defalias 'verilog-in-struct-nested-p #[0 "\300\212\301 \205\302\303!\210\304 \262\211\205\305 \203i\202\306)\207" [nil verilog-in-paren verilog-backward-up-list 1 verilog-at-struct-mv-p verilog-in-struct-p 0] 3 (#$ . 185992) nil])
#@58 Return true if in a constraint or coverpoint expression.
(defalias 'verilog-in-coverage-p #[0 "\212\300 \205\f\301\302!\210\303 )\207" [verilog-in-paren verilog-backward-up-list 1 verilog-at-constraint-p] 2 (#$ . 186333) nil])
#@66 If at the } that closes a constraint or covergroup, return true.
(defalias 'verilog-at-close-constraint-p #[0 "\300f\301=\205*\302 \205*\212\303 \210`Sf\304=\204(`Sf\301=\204(`Sf\305=\205)`)\207" [nil 125 verilog-in-coverage-p verilog-backward-ws&directives 59 123] 2 (#$ . 186567)])
#@99 If at the { of a constraint or coverpoint definition, return true.
Also move point to constraint.
(defalias 'verilog-at-constraint-p #[0 "\212`\302f\303=\205F\304 ?\205F\3051\306 0\202\210\302\202F\205F\307u\210\310 \210`Sf\303=\204?`Sf\311=\204?`Sf\312=\205F\313\314`{\"?\262)\205\243`\315\310 \210\316 \210\317\320P!\203w\321\262\317\322!\203q\310 \210\323 \210\324 \210\202\224\325 \210\202\224\317\326!\203\224\325 \210\313	`{\"\204\224\317\327P!\203\224\321\262\211\315=\203\240b\266\302\207\266\321\207" [verilog-in-constraint-re verilog-named-block-re nil 123 verilog-at-streaming-op-p (error) forward-list -1 verilog-backward-ws&directives 59 125 string-match "^{\\s-*[\\(\\)0-9a-zA-Z_]*\\s-*{" 0 verilog-backward-token looking-at "\\<constraint\\|coverpoint\\|cross\\|with\\>\\|" 1 "\\<with\\>" beginning-of-line verilog-forward-ws&directives verilog-beg-of-statement "\\<\\w+\\>\\|\\s-*(\\s-*\\S-+" "\\<\\(constraint\\|\\(?:\\w+\\s-*:\\s-*\\)?\\(coverpoint\\|cross\\)\\|with\\)\\>\\|"] 6 (#$ . 186862)])
(defconst verilog-streaming-op-re "{\\s-*\\(<<\\|>>\\).*{.*}\\s-*}")
#@48 If at the { of a streaming operator, return t.
(defalias 'verilog-at-streaming-op-p #[0 "\301!\207" [verilog-streaming-op-re looking-at] 2 (#$ . 187981)])
#@57 If at the { of a struct, return true, not moving point.
(defalias 'verilog-at-struct-p #[0 "\212\300f\301=\205\302 \205\303\304!)\207" [nil 123 verilog-backward-token looking-at "\\<struct\\|union\\|packed\\|\\(un\\)?signed\\>"] 2 (#$ . 188143)])
#@63 If at the { of a struct, return true, moving point to struct.
(defalias 'verilog-at-struct-mv-p #[0 "`\300f\301=\203\302 \203\303\304!\203\305 \210`\207\211b\210\300\207\211b\210\300\207" [nil 123 verilog-backward-token looking-at "\\<struct\\|union\\|packed\\|\\(un\\)?signed\\>" verilog-beg-of-statement] 3 (#$ . 188400)])
#@48 If at the } that closes a struct, return true.
(defalias 'verilog-at-close-struct-p #[0 "\300f\301=\205\302 \205\303\304!\207" [nil 125 verilog-in-struct-p looking-at "}\\(?:\\s-*\\w+\\s-*\\(?:,\\s-*\\w+\\s-*\\)*\\)?;"] 2 (#$ . 188737)])
#@49 Return non zero if in parenthetical-expression.
(defalias 'verilog-parenthesis-depth #[0 "\212\300 A@)\207" [verilog-syntax-ppss] 1 (#$ . 188985)])
#@40 Return true if in a string or comment.
(defalias 'verilog-skip-forward-comment-or-string #[0 "\212\300 )\3018\203\302\303!\210\304\207\3058\203\306y\210\304\207\3078\203%\302\310!\207\311\207" [verilog-syntax-ppss 3 search-forward "\"" t 7 1 4 "*/" nil] 3 (#$ . 189139)])
#@40 Return true if in a string or comment.
(defalias 'verilog-skip-backward-comment-or-string #[0 "\212\300 )\3018\203\302\303!\210\304\207\3058\203 \302\306!\210\307\310x\210\304\207\3118\203,\302\312!\210\304\207\310\207" [verilog-syntax-ppss 3 search-backward "\"" t 7 "//" "/" nil 4 "/*"] 3 (#$ . 189425)])
#@39 Return true if a comment was skipped.
(defalias 'verilog-skip-backward-comments #[0 "\300\211\205\236\212\301 )\3028\203\303\304!\210\305\306x\210\307\306x\210\300\202\227\3108\2031\303\311!\210\307\306x\210\300\202\227o\204S`Sf\312U\203S`S\206C`Sf\313U\203S`\314Zb\210\300\202\227o\204\221`Sf\315U\203\221`S\206e`Sf\313U\203\221\316\317\306\"\204\221`\314Zb\210\303\320\306\300#\203\210\307\306x\210\300\202\227`\314\\b\210\306\202\227\307\306x\321U?\262\262\202\207" [t verilog-syntax-ppss 7 search-backward "//" "/" nil " 	\n\f" 4 "/*" 47 42 2 41 verilog-looking-back "(\\s-*\\*)" "(*" 0] 6 (#$ . 189745)])
#@45 If in comment, move to end and return true.
(defalias 'verilog-skip-forward-comment-p #[0 "\300\212\301 )\3028\203\303\202=\3048\203\300\210\305u\210\303\202=\3068\203-\307\310!\210\303\202=\311 \203<\307\312\300\303#\210\303\202=\300\313\300w\210\314\315!\203e`\262\316\225b\210\307\310\300\303#\203a\313\300w\210\303\211\262\202\220b\210\207\314\317!\203\217\314\320!\204\217`\262\316\225b\210\307\312\300\303#\203\213\313\300w\210\303\211\262\202\220b\210\207\300\204A\207" [nil verilog-syntax-ppss 3 t 7 1 4 search-forward "*/" verilog-in-attribute-p "*)" " 	\n\f" looking-at "/\\*" 0 "(\\*" "(\\*\\s-*)"] 7 (#$ . 190386)])
#@83 Cheap version of indent line.
Only look at a few lines to determine indent level.
(defalias 'verilog-indent-line-relative #[0 "\300`\301\302!\203Ho\203\303\304D\262\202P\305 \203<`\305 \203,b\210\306\307 D\262\210\2026\211b\210\310\307 D\262\210\211b\210\202P\211b\203P\311 \262\202P\312\300w\210\311 \262\313!\207" [nil looking-at "^[ 	]*$" cpp 0 verilog-continued-line statement verilog-current-indent-level block verilog-calculate-indent " 	" verilog-do-indent] 5 (#$ . 191048) nil])
#@34 Indent for special part of code.
(defalias 'verilog-indent-line #[0 "\300\301 !\207" [verilog-do-indent verilog-calculate-indent] 2 (#$ . 191558)])
#@19 

(fn INDENT-STR)
(defalias 'verilog-do-indent #[257 "\211@A@\211\306\267\202?`\307 \210h\310U\204!\212\311 \210\312	!)\203\206\313\212\314u\210\311 \210`\262\312	!\203g\315\225b\210\316\313w\210\n\203Rg\317U\203R\320u\210\321\320!\210\316\313w\210\202cg\322U\203c\320u\210\323\314!\210\316\313w\210i\202m\211b\210i\\)b\210\324!\210\f\204\201\325 \203\201\326 \210\266\202\325h\327U\203\236\211b\210\330\331
\"A!\324!\266\202\325\211b\210\311 \210`W\203\363\332\333\334\335#\203\324\336 \211\262\203\324\337 \203\324\340\262\203\320`W\202\321\341\204\256\342!\210\315\225\266\204\203\363\343\344`\345Z`T{\206\353\346\"\204\363i\202\372\330\331
\"A!b\210\324!\266\202\325\313\212\323\320!\210\320u\210\f\203\316\313w\210\202\347 \210`\262i)\212b\210\347 \210`\262\312	!)\324!\210\211\203:\326 \210\266\202\325\3124!\204P\350 \204P\351 \203f\211\352=\203]5Z\202^\324!\266\202\325\211\353=\203\216\312\354!\204\216\312\355!\203\324!\210\202\325\330\331
\"A!\324!\266\202\325\211\356=\203\242\3126!\203\242\324\315!\210\202\325\211\356=\204\256\211\357=\203\303\312	!\203\303\312	\360P!\204\303\361!\210\202\325\312\362!\204\325\330\331
\"A!\324!\266\312\363!\203\337\316\313w\210)\207" [ind verilog-declaration-re verilog-indent-declaration-macros verilog-cexp-indent verilog-indent-lists verilog-indent-alist #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cexp 12 cparenexp 261)) verilog-backward-syntactic-ws 44 verilog-beg-of-statement-1 looking-at nil -1 0 " 	" 96 1 forward-word-strictly 91 verilog-backward-up-list indent-line-to verilog-in-paren verilog-pretty-declarations-auto 41 eval assoc "=[ 	]*" move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data string-match "\\[=.\\|#=#\\||=>" 2 "" verilog-forward-syntactic-ws verilog-at-close-constraint-p verilog-at-close-struct-p statement case "^[ 	]*$" "\\<endcase\\>" defun block "\\s-+\\(function\\|task\\|class\\)\\b" verilog-indent-declaration "\f" "[ 	]+$" verilog-end-block-re verilog-indent-level verilog-zero-indent-re] 11 (#$ . 191712)])
#@51 Return the indent-level of the current statement.
(defalias 'verilog-current-indent-level #[0 "\212\300\301 \210\302 \262\211\203\211b\210\301 \210\302 \262\202	\303\300w\210i\262)\207" [nil beginning-of-line verilog-parenthesis-depth " 	"] 3 (#$ . 193916)])
#@97 Return the indent-level of the current statement.
Do not count named blocks or case-statements.
(defalias 'verilog-case-indent-level #[0 "\212\302\303w\210\304!\203i\202V\304	!\204U\304\305!\203U\306\303\307\310\311#\203E\312 \211\262\203E\313 \203E\314\262\203A`W\202B\307\204\315!\210\316\225\266\302\303w\210i\202Vi)\207" [verilog-named-block-re verilog-extended-case-re " 	" nil looking-at "^[^:;]+:" ":" t (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) store-match-data 0] 8 (#$ . 194187)])
#@33 Indent current line as comment.
(defalias 'verilog-indent-comment #[0 "\301 \203\212\302\303\304\305#\210iT)\202#\203\202#\212\302\306\304\305#\210i)\307!\210\207" [comment-column verilog-in-star-comment-p re-search-backward "/\\*" nil t "//" indent-line-to] 4 (#$ . 194753)])
#@44 Make more comment lines like the previous.
(defalias 'verilog-more-comment #[0 "\301\302 \203\212\303\262\304\305\306\307#\210iT)\202'\203\202'\212\304\310\306\307#\210i)\211j\210\205?\212\311y\210\312\306w\210\313\314!)\205?\315c\207" [comment-column 0 verilog-in-star-comment-p 1 re-search-backward "/\\*" nil t "//" -1 " 	" looking-at "\\*" "* "] 5 (#$ . 195045)])
#@140 Return the column number the line should be indented to.
_ARG is ignored, for `comment-indent-function' compatibility.

(fn &optional ARG)
(defalias 'verilog-comment-indent #[256 "\301 \203\212\302\303\304\305#\210iT)\207\203\207\212\302\306\304\305#\210i)\207" [comment-column verilog-in-star-comment-p re-search-backward "/\\*" nil t "//"] 5 (#$ . 195432)])
#@96 Call `verilog-pretty-declarations' QUIET based on `verilog-auto-lineup'.

(fn &optional QUIET)
(defalias 'verilog-pretty-declarations-auto #[256 "\301=\204\f\302=\205\303!\207" [verilog-auto-lineup all declarations verilog-pretty-declarations] 3 (#$ . 195804)])
#@111 Line up declarations around point.
Be verbose about progress unless optional QUIET set.

(fn &optional QUIET)
(defalias 'verilog-pretty-declarations #[256 "\304 `\305\211`\305\211\211\211\211\211\212\306 \210\307 \210\310 ?\205\221\311!\205\221\312 \203\240\313\314!\262		b\210\313\315!\210\305y\210	\316\317\320#\203_\321 \211\262\203_\322 \203_\323\262\203[`W\202\\\324\2049\325!\210\326\225\266\326\224b\210\327\305x\210`\262\304 \305\223\262b\210\313\314!\210\314u\210\330 \210`\262\304 \305\223\262b\210\315u\210\327\305w\210i\262\202\331 \210\311!\203\303o\204\303\327\305x\210`\262\n\306 \210\330 \210\314u\210\331 \210\202\243	\262\304 \305\223\262b\210\332 \210`\262\n\307 \210\311!\203\355\332 \210`\262\n\307 \210\202\333	\262\304 \305\223\262b\210\333\334 !\210\335 \210i\262\336!b\210\204Z\337V\203\340\341!\210\336!\262\n`\nW\203\262\212\327\305x\210n)\203y\335 \210\342!\210\335 \210`\nW\203\343\n\316\317\320#\203n\321 \211\262\203n\322 \203n\323\262\203j`W\202k\324\204H\325!\210\326\225\266\202\344 \210\343\n\316\317\320#\203\247\321 \211\262\203\247\322 \203\247\323\262\203\243`W\202\244\324\204\201\325!\210\326\225\266\202\345\336!\"\262\336!b\210\336!\262\n	`Z\262\326V\203\210`\262\n\204\337\340\346	\"\210\335 \210	\203\354\311\n!\204\362\311!\203U\326\225\305\223\210\347\316\317\320#\203$\321 \211\262\203$\322 \203$\323\262\203 `W\202!\324\204\376\325!\210\326\225\266\204\203H\314u\210\344 \210\336\f!b\210\350 \210\351\315\"\266\202\202\350 \210\351\315\"\266\202\202\352\336!!\203i	b\210\342!\210\202\202\353 \203x	b\210\332 \210\202\202	b\210\335 \210\314y\210\315y\210\202\277?\205\221\340\354!)\207" [verilog-declaration-re verilog-indent-declaration-macros verilog-declaration-re-2-macro verilog-declaration-re-2-no-macro make-marker nil beginning-of-line verilog-forward-syntactic-ws verilog-in-directive-p looking-at verilog-parenthesis-depth verilog-backward-up-list -1 1 move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data 0 " 	" verilog-backward-syntactic-ws verilog-beg-of-statement-1 verilog-end-of-statement verilog-do-indent verilog-calculate-indent verilog-forward-ws&directives marker-position 100 message "Lining up declarations..(please stand by)" indent-line-to "[ 	\n\f]" just-one-space verilog-get-lineup-indent "%d" "[[#`]" delete-horizontal-space indent-to verilog-continued-line-1 verilog-in-struct-p ""] 21 (#$ . 196079) nil])
#@133 Line up expressions around point.
If QUIET is non-nil, do not print messages showing the progress of line-up.

(fn &optional QUIET)
(defalias 'verilog-pretty-expr #[256 "\303 ?\205S\212\304P\304	P\305 \210\306!?\205P\306\n!\205P\212\307\225b\210\310 ?\2051\311 ?\2051\303 ?)\205P\212\305 \210`\312 \210\305 \210\306!\204\\\306\n!\203\\o\204\\`\262\312 \210\305 \210\202@\211\262)\212\313\210`\314 \210\305 \210\306!\204\214\306\n!\203\214\313\210\211`=\204\214`\262\314 \210\305 \210\202k\211\262)\315\316\317\"\"\320 \313\223b\210\321\322 !\210\204\265Z\323V\203\265\324\325!\210`\326!W\203\324\305 \210\212\327\n!\210)\321\322 !\210\313\210\314 \210\202\265\330\n\326!#\313b\210\326!\262\211`V\203E\204\366\324\331`Z\"\210`\262\306\n!\203%\307\224b\210\332 \204?\333 \204?\203\313f\334=\203Tj\210\202?j\210\202?\335!\2036\211b\210\336!\210\202?\211b\210\337 \210\340y\210\341y\210\202\337?\205N\324\342!\266\206\266\202)\207" [verilog-complete-reg verilog-basic-complete-re verilog-assignment-operation-re verilog-in-comment-or-string-p "^\\s-*" beginning-of-line looking-at 2 verilog-in-attribute-p verilog-in-parameter-p verilog-backward-syntactic-ws nil verilog-forward-syntactic-ws string-match "<=" buffer-substring-no-properties make-marker verilog-do-indent verilog-calculate-indent 100 message "Lining up expressions.. (please stand by)" marker-position verilog-just-one-space verilog-get-lineup-indent-2 " verilog-pretty-expr: %d" verilog-in-parenthesis-p verilog-in-coverage-p 61 verilog-continued-line-1 indent-line-to verilog-forward-ws&directives -1 1 ""] 13 (#$ . 198694) nil])
#@64 Remove extra spaces around regular expression MYRE.

(fn MYRE)
(defalias 'verilog-just-one-space #[257 "\301!?\205\301!\205\302\225\303\225\211b\210\304 \210b\210\304 \266\202\207" [verilog-complete-reg looking-at 1 2 just-one-space] 4 (#$ . 200364) nil])
#@173 Indent current lines as declaration.
Line up the variable names based on previous declaration's indentation.
BASEIND is the base indent to offset everything.

(fn BASEIND)
(defalias 'verilog-indent-declaration #[257 "\306 \212\307\310\311\312\313#\203-\314 \211\262\203-\315 \203-\316\262\203)`V\202*\317\204\320!\210\321\225\266`)\310\211\322 \323\324	\236A!\\\262\325!\210\n\326=\204W\n\327=\203|\203_\f\206`
\317\312\313#\203\211\314 \211\262\203\211\315 \203\211\316\262\203\205`V\202\206\317\204c\320!\210\321\225\266\204\203|\321\225b\210\330\310w\210ib\210\323\324	\236A!\\\262\325!\210\203\331&!\203\321\225\310\223\210\332\311\333\334#\203\353\314 \211\262\203\353\335 \203\353\336\262\203\347`W\202\350\317\204\305\320!\210\321\225\266\204\203
\337u\210\340 \210\341!b\210\342 \210\343\344\"\266\202|\342 \210\343\344\"\266\202|\331'!\203|\321\225\310\223\210\345\311\333\334#\203Q\314 \211\262\203Q\335 \203Q\336\262\203M`W\202N\317\204+\320!\210\321\225\266\204\203s\337u\210\340 \210\341!b\210\342 \210\343\344\"\266\202|\342 \210\343\344\"\266b)\207" [ind verilog-indent-alist verilog-auto-lineup verilog-indent-declaration-macros verilog-declaration-re-1-macro verilog-declaration-re-1-no-macro point-marker "\\(\\<begin\\>\\)\\|\\(\\<\\(connect\\)?module\\>\\)\\|\\(\\<task\\>\\)" nil move (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) t store-match-data 0 make-marker eval declaration indent-line-to all declarations " 	" looking-at "[[#`]" (nil nil) re-search-forward verilog-skip-forward-comment-or-string (nil nil) -1 just-one-space marker-position delete-horizontal-space indent-to 1 "[[`#]" verilog-declaration-re-2-macro verilog-declaration-re-2-no-macro] 15 (#$ . 200634) nil])
#@124 Return the indent level that will line up several lines within the region.
Region is defined by B and EDPOS.

(fn B EDPOS)
(defalias 'verilog-get-lineup-indent #[514 "\212\303\304b\210\305!\262`W\203e\203	\206\n\306\307\310#\203C\311 \211\262\203C\312 \203C\313\262\203?`W\202@\314\204\315!\210\303\225\266\204\203\303\225b\210\316 \210iV\203^i\262\303\225b\210\202\303V\203rT\266\202\202b\210\304\210\316 \210iT\266\202)\207" [verilog-indent-declaration-macros verilog-declaration-re-1-macro verilog-declaration-re-1-no-macro 0 nil marker-position move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data verilog-backward-syntactic-ws] 12 (#$ . 202492)])
#@168 Return the indent level that will line up several lines.
The lineup string is searched using REGEXP within the region between points
BEG and END.

(fn REGEXP BEG END)
(defalias 'verilog-get-lineup-indent-2 #[771 "\212\300b\210`W\203\\\301\302\303#\2035\304 \211\262\2035\305 \2035\306\262\2031`W\2022\307\204\310!\210\300\225\266\204\203\311 \204\312\224b\210\313 \210iV\203Ui\262\300\225b\210\202\211\300V\203g\211T\202sb\210\314\210\315\314x\210iT\262\211\262)\207" [0 move (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) t store-match-data verilog-in-attribute-p 2 verilog-backward-syntactic-ws nil " 	"] 12 (#$ . 203250)])
#@88 A useful mode debugging aide.  TYPE and VAL are comments for insertion.

(fn TYPE VAL)
(defalias 'verilog-comment-depth #[514 "\212\300 \210\301 \302\210\303\304\305#\203\306\307!\210\302\266\202#\302\210\310c\266\311u\210\312\313#c)\207" [beginning-of-line point-marker nil re-search-backward " /\\* [#-]# [a-zA-Z]+ [0-9]+ ## \\*/" t replace-match " /* -#  ## */" " /* ##  ## */" -6 format "%s %d"] 7 (#$ . 203958)])
(defvar verilog-str nil)
(defvar verilog-all nil)
(defvar verilog-buffer-to-use nil)
#@279 True means \<verilog-mode-map>\[verilog-complete-word] should try all possible completions one by one.
Repeated use of \[verilog-complete-word] will show you all of them.
Normally, when there is more than one possible completion,
it displays a list of all possible completions.
(defvar verilog-toggle-completions nil (#$ . 204479))
(byte-code "\300\301!\203\f\302\303\301\304#\210\300\207" [boundp completion-cycle-threshold make-obsolete-variable verilog-toggle-completions "26.1"] 4)
#@102 Keywords for types used when completing a word in a declaration or parmlist.
(integer, real, reg...)
(defvar verilog-type-keywords '("and" "buf" "bufif0" "bufif1" "cmos" "defparam" "inout" "input" "integer" "localparam" "logic" "mailbox" "nand" "nmos" "nor" "not" "notif0" "notif1" "or" "output" "parameter" "pmos" "pull0" "pull1" "pulldown" "pullup" "rcmos" "real" "realtime" "reg" "rnmos" "rpmos" "rtran" "rtranif0" "rtranif1" "semaphore" "time" "tran" "tranif0" "tranif1" "tri" "tri0" "tri1" "triand" "trior" "trireg" "wand" "wire" "wor" "xnor" "xor") (#$ . 204973))
#@240 Keywords to complete when at first word of a line in declarative scope.
(initial, always, begin, assign...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-cpp-keywords '("connectmodule" "module" "macromodule" "primitive" "timescale" "define" "ifdef" "ifndef" "else" "endif") (#$ . 205550))
#@240 Keywords to complete when at first word of a line in declarative scope.
(initial, always, begin, assign...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-defun-keywords (append '("always" "always_comb" "always_ff" "always_latch" "analog" "assign" "begin" "end" "connectmodule" "endconnectmodule" "generate" "endgenerate" "module" "endmodule" "specify" "endspecify" "function" "endfunction" "initial" "final" "task" "endtask" "primitive" "endprimitive") verilog-type-keywords) (#$ . 205947))
#@241 Keywords to complete when at first word of a line in behavioral scope.
(begin, if, then, else, for, fork...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-block-keywords '("begin" "break" "case" "continue" "else" "end" "endfunction" "endgenerate" "endinterface" "endpackage" "endspecify" "endtask" "for" "fork" "if" "join" "join_any" "join_none" "repeat" "return" "while") (#$ . 206546))
#@241 Keywords to complete when at first word of a line in a task or function.
(begin, if, then, else, for, fork.)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-tf-keywords '("begin" "break" "fork" "join" "join_any" "join_none" "case" "end" "endtask" "endfunction" "if" "else" "for" "while" "repeat") (#$ . 207042))
#@235 Keywords to complete when at first word of a line in case scope.
(begin, if, then, else, for, fork...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-case-keywords '("begin" "fork" "join" "join_any" "join_none" "case" "end" "endcase" "if" "else" "for" "repeat") (#$ . 207460))
#@228 Keywords to complete when NOT standing at the first word of a statement.
(else, then, begin...)
Variables and function names defined within the Verilog program
will be completed at runtime and should not be added to this list.
(defvar verilog-separator-keywords '("else" "then" "begin") (#$ . 207844))
#@71 Map of direction for each positional argument to each gate primitive.
(defvar verilog-gate-ios '(("and" "output") ("buf" "output") ("bufif0" "output") ("bufif1" "output") ("cmos" "output") ("nand" "output") ("nmos" "output") ("nor" "output") ("not" "output") ("notif0" "output") ("notif1" "output") ("or" "output") ("pmos" "output") ("pulldown" "output") ("pullup" "output") ("rcmos" "output") ("rnmos" "output") ("rpmos" "output") ("rtran" "inout" "inout") ("rtranif0" "inout" "inout") ("rtranif1" "inout" "inout") ("tran" "inout" "inout") ("tranif0" "inout" "inout") ("tranif1" "inout" "inout") ("xnor" "output") ("xor" "output")) (#$ . 208152))
#@31 Keywords for gate primitives.
(defvar verilog-gate-keywords (mapcar 'car verilog-gate-ios) (#$ . 208806))
#@75 Return index of first letter where STR1 and STR2 differs.

(fn STR1 STR2)
(defalias 'verilog-string-diff #[514 "\30020\301\211TGV\204\211TGV\203\302\300\"\210HH\232\204)\302\300\"\210\211T\262\202\207" [done 0 throw] 6 (#$ . 208918)])
#@131 Build regular expression for module/task/function names.
TYPE is `module', `tf' for task or function, or t if unknown.

(fn TYPE)
(defalias 'verilog-func-completion #[257 "\303\230\203\304\211\305\267\202\306\202\307\202\310\311\312R\313\212\314	!\204W	\313\315\316\317#\203O\320 \211\262\203O\321 \203O\322\262\203K`V\202L\315\204)\323!\210\324\225\266\325u\210eb\210d\315\326\327#\203\207\320 \211\262\203\207\330 \203\207\331\262\203\203`W\202\204\315\204a\323!\210\324\225\266\204\205\240\332\224\332\225{\262\211\nB\202]*\207" [verilog-str verilog-defun-re verilog-all "" "[a-zA-Z_]" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (module 14 tf 18)) "\\<\\(module\\|connectmodule\\)\\s +" "\\<\\(task\\|function\\)\\s +" "\\<\\(task\\|function\\|module\\|connectmodule\\)\\s +" "\\<\\(" "[a-zA-Z0-9_.]*\\)\\>" nil looking-at t (nil nil) re-search-backward match-data verilog-skip-backward-comment-or-string (nil nil) store-match-data 0 1 (nil nil) re-search-forward verilog-skip-forward-comment-or-string (nil nil) 2] 11 (#$ . 209177)])
#@155 Macro for searching through current declaration (var, type or const)
for matches of `str' and adding the occurrence tp `all' through point END.

(fn END)
(defalias 'verilog-get-completion-decl #[257 "\203	\206	\n\306\211`W\203\243\307\310\311#\203;\312 \211\262\203;\313 \203;\314\262\2037`W\2028\307\204\315!\210\316\225\266\204\203\243\212\317 )\262\307\310\311#\203v\312 \211\262\203v\313 \203v\314\262\203r`W\202s\307\204P\315!\210\316\225\266\204\203\235\320\225\204\235\316\224\316\225{\262\321\322\fP\"\203L\211
B\202L\320y\210\202\266
\207" [verilog-indent-declaration-macros verilog-declaration-re-2-macro verilog-declaration-re-2-no-macro verilog-symbol-re verilog-str verilog-all nil t (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) store-match-data 0 verilog-declaration-end 1 string-match "\\<"] 12 (#$ . 210312)])
#@66 Calculate all possible completions for variables (or constants).
(defalias 'verilog-var-completion #[0 "`\300 \210\212\301!)\207" [verilog-beg-of-defun verilog-get-completion-decl] 3 (#$ . 211238)])
#@87 Give list of all possible completions of keywords in KEYWORD-LIST.

(fn KEYWORD-LIST)
(defalias 'verilog-keyword-completion #[257 "\211\211\205\211@\302\303P\"\203\211	BA\266\202\202\207" [verilog-str verilog-all string-match "\\<"] 6 (#$ . 211444)])
#@424 Completion table for Verilog tokens.
Function passed to `completing-read', `try-completion' or `all-completions'.
Called to get completion on STR.
If FLAG is t, the function returns a list of all possible completions.
If FLAG is nil it returns a string, the longest possible completion,
or t if STR is an exact match.
If FLAG is `lambda', the function returns t if STR is an exact match,
nil otherwise.

(fn STR PRED FLAG)
(defalias 'verilog-completion #[771 "\306r\nq\210\307 @\211\310\267\202~\212\311 \210)\312\313!\210\314!\266\202\215\212\311 \210)\312\313!\210\314!\266\202\215\212\311 \210)\312\315!\210\314\f!\266\202\215\212\311 \210)\312\315!\210\314
!\266\202\215\212\311 \210)\312\315!\210\314!\266\202\215\212\311 \210)\314!\266\202\215\212\311 \210)\210\202\215\212\311 \210)\312\316!\210\314!\266\317	$+\207" [verilog-all verilog-str verilog-buffer-to-use verilog-defun-keywords verilog-block-keywords verilog-case-keywords nil verilog-calculate-indent #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (defun 17 behavioral 34 block 51 case 68 tf 85 cpp 103 cparenexp 117)) verilog-var-completion verilog-func-completion module verilog-keyword-completion tf both verilog--complete-with-action verilog-tf-keywords verilog-cpp-keywords verilog-separator-keywords] 8 (#$ . 211712)])
(byte-code "\300\301\302\303!\203\f\303\202
\304\"\207" [defalias verilog--complete-with-action fboundp complete-with-action #[1028 "\300=\204\n\204e\205jA@\211G\301\230\203\"\302\262\202T\203T\303@\"\211\262W\203<\211\262\304O\262@\230\203M\302\262\301\262\202\"A\262\202\"\300=\205_\302=??\205d\207\205j\207" [lambda nil t verilog-string-diff 0] 11 "\n\n(fn FLAG COLLECTION STRING PREDICATE)"]] 4)
(defvar verilog-last-word-numb 0)
(defvar verilog-last-word-shown nil)
(defvar verilog-last-completions nil)
#@125 Used as an element of `completion-at-point-functions'.
(See also `verilog-type-keywords' and
`verilog-separator-keywords'.)
(defalias 'verilog-completion-at-point #[0 "\212\305\306x\210`)\212\305\306w\210`){p\n\203\"\230\203\"\f\202&\307\310\"E*\207" [verilog-str verilog-buffer-to-use verilog-toggle-completions verilog-last-word-shown verilog-last-completions "a-zA-Z0-9_" nil all-completions verilog-completion] 6 (#$ . 213633)])
#@133 Complete word at current point.
(See also `verilog-toggle-completions', `verilog-type-keywords',
and `verilog-separator-keywords'.)
(defalias 'verilog-complete-word #[0 "\306 \211@A@{\3078	\203\310\202\311\"|\210	\203MGSY\2030\312\2022T\234\203B\310\f\261\202\313\310\261\210\313\314!\202\313\211\203W\211\315=\203c\310\261\210\313\314!\210\202h\310\261\210\211\315=\203A\203y\313\316!\202\313\313\317!\202\313A??\205\313GGU\205\313
r\320\321!q\210p\322 \210\323\211\315\211\315 \324 \210\325\326!\210+\211!\327!\210\330!\210)\266\331\310`\"\210\332\323\333\321!\")\207" [verilog-str verilog-toggle-completions verilog-last-completions verilog-last-word-numb verilog-last-word-shown default-directory verilog-completion-at-point 2 "" try-completion 0 message "(No match)" t "(Complete but not unique)" "(Sole completion)" get-buffer-create "*Completions*" kill-all-local-variables nil erase-buffer run-hooks temp-buffer-setup-hook display-completion-list internal-temp-output-buffer-show momentary-string-display verilog-quit-window get-buffer-window buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only standard-output] 10 (#$ . 214086) nil])
#@49 Show all possible completions at current point.
(defalias 'verilog-show-completions #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211\316\317\320 8!\210\321!\210)\266\322\323`\"\210\324\311\325\307!\"\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Completions*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list 2 verilog-completion-at-point internal-temp-output-buffer-show momentary-string-display "" verilog-quit-window get-buffer-window standard-output] 6 (#$ . 215344) nil])
#@49 Return symbol around current point as a string.
(defalias 'verilog-get-default-symbol #[0 "\212\300\301x\210\302\301x\210`\302\301w\210`{)\207" [" 	" nil "a-zA-Z0-9_"] 3 (#$ . 216014)])
#@173 Return function/task/module starting with STR as regular expression.
With optional second ARG non-nil, STR is the complete name of the instruction.

(fn STR &optional ARG)
(defalias 'verilog-build-defun-re #[513 "\211\204	\300P\262\301\302Q\207" ["[a-zA-Z0-9_]*" "^\\s-*\\(function\\|task\\|module\\)[ 	]+\\(?:\\(?:static\\|automatic\\)\\s-+\\)?\\(" "\\)\\>"] 5 (#$ . 216207)])
#@452 Completion table for function names.
Function passed to `completing-read', `try-completion' or `all-completions'.
Returns a completion on any function name based on STR prefix.
If FLAG is t, the function returns a list of all possible completions.
If it is nil it returns a string, the longest possible completion,
or t if STR is an exact match.
If FLAG is `lambda', the function returns t if STR is an exact match,
nil otherwise.

(fn STR PRED FLAG)
(defalias 'verilog-comp-defun #[771 "\303\303r\nq\210\304\305\230\203\306\202!eb\210\303\307\310\311#\203H\312 \211\262\203H\313 \203H\314\262\203D`W\202E\307\204\"\315!\210\316\225\266\204\203a\317\224\317\225{\262\211	B\202)\320	$+\207" [verilog-str verilog-all verilog-buffer-to-use nil verilog-build-defun-re "" "[a-zA-Z_]" t (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) store-match-data 0 2 verilog--complete-with-action] 14 (#$ . 216596)])
#@190 Move to specified Verilog module/interface/task/function.
The default is a name found in the buffer around point.
If search fails, other files are checked based on
`verilog-library-flags'.
(defalias 'verilog-goto-defun #[0 "\301 p\211\302\230\204\303\304\305Q\306\307\211\302%\202\303\310\306\307\211\302%\307\311 \210\312 \210\302\230\203.\262\302\230\206T\212eb\210\313\314\315\"\307\315#\262)\211\203M\211b\210\316 \210\211\206T\317!)\207" [verilog-buffer-to-use verilog-get-default-symbol "" completing-read "Goto-Label: (default " ") " verilog-comp-defun nil "Goto-Label: " verilog-auto-reeval-locals verilog-getopt-flags re-search-forward verilog-build-defun-re t beginning-of-line verilog-goto-defun-file] 7 (#$ . 217581) nil])
#@33 List all scopes in this module.
(defalias 'verilog-showscopes #[0 "p\306\211e\307 r\310\311!q\210p\312 \210\313\211\314\211\314\315 \210\316\317!\210+\211&\212\320\321\322\"\210dU\204\322\313\314\323\324#\203^\325 \211\262\203^\326 \203^\327\262\203Z`W\202[\314\2048\330!\210\331\225\266\204\203\331\224b\210\332 \210\325 \333\334\"\216\335`\"\\\262)\210`\262\331\225b\210\212\331\224b\210\331y\210`)\212\331\225b\210\306y\210`)\336\337	\"\340G\341\"\313\307 \262\211`\313\223\210r&q\210\211'B'\313\262\n\342\f#\210Z\206\320\306[u\210\331\262\211\331V\203\353\343\261\210\306y\210\211S\262\202\326`\331\225\331\224Z\\\313\223\210`W\203\204	\336\337\f\"\262\343\261\210\202\367)\266\202.)\344\313!\345!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only 1 make-marker get-buffer-create "*Occur*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook message "Searching for %s ..." "\\(\\(connect\\)?module\\s-+\\w+\\s-*(\\)\\|\\(\\w+\\s-+\\w+\\s-*(\\)" (nil nil) re-search-forward match-data verilog-skip-forward-comment-or-string (nil nil) store-match-data 0 beginning-of-line make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] count-lines format "%3d" make-string 32 insert-buffer-substring 58 set-buffer-modified-p internal-temp-output-buffer-show standard-output occur-pos-list] 17 (#$ . 218339) nil])
(defconst verilog-directive-regexp "\\(translate\\|coverage\\|lint\\)_")
#@56 Return point if within translate-off region, else nil.
(defalias 'verilog-within-translate-off #[0 "\212\301\302\303Q\304\305#)\205\306\307!\310\232\205`\207" [verilog-directive-regexp re-search-backward "//.*" "\\(on\\|off\\)\\>" nil t match-string 2 "off"] 4 (#$ . 219911)])
#@84 Return point before translate-off directive if before LIMIT, else nil.

(fn LIMIT)
(defalias 'verilog-start-translate-off #[257 "\301\302\303Q\304#\205
\305\224\207" [verilog-directive-regexp re-search-forward "//.*" "off\\>" t 0] 5 (#$ . 220199)])
#@84 Return point before translate-off directive if before LIMIT, else nil.

(fn LIMIT)
(defalias 'verilog-back-to-start-translate-off #[257 "\301\302\303Q\304#\205
\305\224\207" [verilog-directive-regexp re-search-backward "//.*" "off\\>" t 0] 5 (#$ . 220457)])
#@82 Return point after translate-on directive if before LIMIT, else nil.

(fn LIMIT)
(defalias 'verilog-end-translate-off #[257 "\301\302\303Q\304#\207" [verilog-directive-regexp re-search-forward "//.*" "on\\>" t] 5 (#$ . 220724)])
#@113 Match a translate-off block, setting `match-data' and returning t, else nil.
Bound search by LIMIT.

(fn LIMIT)
(defalias 'verilog-match-translate-off #[257 "`W\205(\301 \206\302!\303\211\205%\304!\206\305D!\210\211b\262)\262\207" [case-fold-search verilog-within-translate-off verilog-start-translate-off t verilog-end-translate-off set-match-data] 6 (#$ . 220962)])
#@167 Match, and move over, any declaration item after point.
Bound search by LIMIT.  Adapted from
`font-lock-match-c-style-declaration-item-and-skip-to-next'.

(fn LIMIT)
(defalias 'verilog-font-lock-match-item #[257 "\30010\214e}\210\301\302!\205-\303 \304\305\"\216\306\225b\210\301\307!\203&\306\225b\202*\310\210\311)\262)0\207\210\310\207" [(error) looking-at "\\s-*\\([a-zA-Z]\\w*\\)" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] 1 "\\(\\s-*,\\)" nil t] 5 (#$ . 221352)])
#@96 Insert a standard Verilog file header.
See also `verilog-sk-header' for an alternative format.
(defalias 'verilog-header #[0 "`\302c\210\211b\210\303\304!\210\305\306 \307\211#\210\303\310!\210\305\311\307\211#\210\312 c\210\313\314 \315\316 \317\261\210\303\320!\210\305\311\307\211#\210\321 \210\303\322!\210\305\311\307\211#\210\321 \210\303\323!\210\305\311\307\211#\210\324 \210\303\325!\210\305\311\307\211#\210\321 \210\326c\210\211b\210\327\330\331!\262\303\332!\210\305\307\211#\210\330\333\"\262\211\303\334!\210\305\307\211#\210\330\335	\"\262\211\303\336!\210\305\307\211#\210\303\336!\210\305\307\211#\210\303\336!\210\305\307\211#\210\337\340!\210\305\311\307\211#\207" [verilog-project verilog-company "//-----------------------------------------------------------------------------\n// Title         : <title>\n// Project       : <project>\n//-----------------------------------------------------------------------------\n// File          : <filename>\n// Author        : <author>\n// Created       : <credate>\n// Last modified : <moddate>\n//-----------------------------------------------------------------------------\n// Description :\n// <description>\n//-----------------------------------------------------------------------------\n// Copyright (c) <copydate> by <company> This model is the confidential and\n// proprietary property of <company> and the possession or use of this\n// file requires a written license from <company>.\n//------------------------------------------------------------------------------\n// Modification history :\n// <modhist>\n//-----------------------------------------------------------------------------\n\n" search-forward "<filename>" replace-match buffer-name t "<author>" "" user-full-name "  <" user-login-name "@" system-name ">" "<credate>" verilog-insert-date "<moddate>" "<copydate>" verilog-insert-year "<modhist>" " : created" nil read-string "title: " "<title>" "project: " "<project>" "Company: " "<company>" search-backward "<description>"] 6 (#$ . 221876) nil])
#@30 Insert date from the system.
(defalias 'verilog-insert-date #[0 "\203	\301\302!c\207\301\303!c\207" [verilog-date-scientific-format format-time-string "%Y/%m/%d" "%d.%m.%Y"] 2 (#$ . 223927) nil])
#@30 Insert year from the system.
(defalias 'verilog-insert-year #[0 "\300\301!c\207" [format-time-string "%Y"] 2 (#$ . 224131) nil])
#@64 

(fn NAME BITS COMMENT MEM ENUM SIGNED TYPE MULTIDIM MODPORT)
(defalias 'verilog-sig-new #[2313 "\257	\207" [] 18 (#$ . 224266)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@21 

(fn NAME OLD-SIG)
(defalias 'verilog-sig-new-renamed #[514 "AB\207" [] 4 (#$ . 224562)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-new-renamed speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-name #[257 "\211@\207" [] 2 (#$ . 224810)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-bits #[257 "\211A@\207" [] 2 (#$ . 225036)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-bits speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-comment #[257 "\3008\207" [2] 3 (#$ . 225263)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-comment speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-memory #[257 "\3008\207" [3] 3 (#$ . 225497)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-memory speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-enum #[257 "\3008\207" [4] 3 (#$ . 225729)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-enum speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-signed #[257 "\3008\207" [5] 3 (#$ . 225957)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-signed speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-type #[257 "\3008\207" [6] 3 (#$ . 226189)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-type speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SIG TYPE)
(defalias 'verilog-sig-type-set #[514 "\300\233\240\207" [6] 4 (#$ . 226417)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-type-set speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-multidim #[257 "\3008\207" [7] 3 (#$ . 226666)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-multidim speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-multidim-string #[257 "\211\3008\262\205$\301\3008\262\211\203!\211@P\262\211A\262\202\266\202\207" [7 ""] 5 (#$ . 226902)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-multidim-string speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-modport #[257 "\3008\207" [8] 3 (#$ . 227233)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-modport speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-sig-width #[257 "\300\211A@\262!\207" [verilog-make-width-expression] 4 (#$ . 227467)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-sig-width speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@45 

(fn OUTPUTS-DEL OUTPUTS-IMM TEMPS INPUTS)
(defalias 'verilog-alw-new #[1028 "\300$\207" [vector] 9 (#$ . 227736)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn SIGS)
(defalias 'verilog-alw-get-outputs-delayed #[257 "\211\300H\207" [0] 3 (#$ . 228004)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-get-outputs-delayed speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn SIGS)
(defalias 'verilog-alw-get-outputs-immediate #[257 "\211\300H\207" [1] 3 (#$ . 228266)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-get-outputs-immediate speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn SIGS)
(defalias 'verilog-alw-get-temps #[257 "\211\300H\207" [2] 3 (#$ . 228532)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-get-temps speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn SIGS)
(defalias 'verilog-alw-get-inputs #[257 "\211\300H\207" [3] 3 (#$ . 228774)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-get-inputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn SIGS)
(defalias 'verilog-alw-get-uses-delayed #[257 "\211\300H\207" [0] 3 (#$ . 229018)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-alw-get-uses-delayed speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@29 

(fn NAME CLOCKINGS DECLS)
(defalias 'verilog-modport-new #[771 "E\207" [] 6 (#$ . 229274)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-modport-name #[257 "\211@\207" [] 2 (#$ . 229522)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-modport-clockings #[257 "\211A@\207" [] 2 (#$ . 229756)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-clockings speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@16 

(fn SIG VAL)
(defalias 'verilog-modport-clockings-add #[514 "AA@B\240\207" [] 5 (#$ . 230001)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-clockings-add speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn SIG)
(defalias 'verilog-modport-decls #[257 "\3008\207" [2] 3 (#$ . 230263)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-decls speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@16 

(fn SIG VAL)
(defalias 'verilog-modport-decls-set #[514 "AA\240\207" [] 4 (#$ . 230501)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modport-decls-set speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@25 

(fn NAME FOB PT TYPE)
(defalias 'verilog-modi-new #[1028 "\300$\207" [vector] 9 (#$ . 230752)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-name #[257 "\211\300H\207" [0] 3 (#$ . 231002)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-file-or-buffer #[257 "\211\300H\207" [1] 3 (#$ . 231236)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-file-or-buffer speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-get-point #[257 "\211\300H\207" [2] 3 (#$ . 231490)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-get-point speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-get-type #[257 "\211\300H\207" [3] 3 (#$ . 231734)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-get-type speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-get-decls #[257 "\300\301\"\207" [verilog-modi-cache-results verilog-read-decls] 4 (#$ . 231976)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-get-decls speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@13 

(fn MODI)
(defalias 'verilog-modi-get-sub-decls #[257 "\300\301\"\207" [verilog-modi-cache-results verilog-read-sub-decls] 4 (#$ . 232266)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-get-sub-decls speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@69 

(fn OUT INOUT IN VARS MODPORTS ASSIGNS CONSTS GPARAMS INTERFACES)
(defalias 'verilog-decls-new #[2313 "\300									&	\207" [vector] 19 (#$ . 232568)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@12 

(fn A B)
(defalias 'verilog-decls-append #[514 "\204\207\211\204\207\300\301\302H\302H\"\301\303H\303H\"\301\304H\304H\"\301\305H\305H\"\301\306H\306H\"\301\307H\307H\"\301	\310H	\310H\"\301\n\311H\n\311H\"\301\312H\312H\"&	\207" [vector append 0 1 2 3 4 5 6 7 8] 15 (#$ . 232880)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-append speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-outputs #[257 "\211\300H\207" [0] 3 (#$ . 233349)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-outputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-inouts #[257 "\211\300H\207" [1] 3 (#$ . 233600)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-inouts speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-inputs #[257 "\211\300H\207" [2] 3 (#$ . 233849)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-inputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-vars #[257 "\211\300H\207" [3] 3 (#$ . 234098)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-vars speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-modports #[257 "\211\300H\207" [4] 3 (#$ . 234343)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-modports speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-assigns #[257 "\211\300H\207" [5] 3 (#$ . 234596)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-assigns speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-consts #[257 "\211\300H\207" [6] 3 (#$ . 234847)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-consts speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-gparams #[257 "\211\300H\207" [7] 3 (#$ . 235096)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-gparams speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-interfaces #[257 "\211\300H\207" [8] 3 (#$ . 235347)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-decls-get-interfaces speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@32 

(fn OUT INOUT IN INTF INTFD)
(defalias 'verilog-subdecls-new #[1285 "\300%\207" [vector] 11 (#$ . 235604)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-new speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SUBDECLS)
(defalias 'verilog-subdecls-get-outputs #[257 "\211\300H\207" [0] 3 (#$ . 235871)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-get-outputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SUBDECLS)
(defalias 'verilog-subdecls-get-inouts #[257 "\211\300H\207" [1] 3 (#$ . 236131)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-get-inouts speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SUBDECLS)
(defalias 'verilog-subdecls-get-inputs #[257 "\211\300H\207" [2] 3 (#$ . 236389)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-get-inputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SUBDECLS)
(defalias 'verilog-subdecls-get-interfaces #[257 "\211\300H\207" [3] 3 (#$ . 236647)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-get-interfaces speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@17 

(fn SUBDECLS)
(defalias 'verilog-subdecls-get-interfaced #[257 "\211\300H\207" [4] 3 (#$ . 236913)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-subdecls-get-interfaced speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@95 Return signals in standard form from SIGNAME-LIST, a simple list of names.

(fn SIGNAME-LIST)
(defalias 'verilog-signals-from-signame #[257 "\300\301\"\207" [mapcar #[257 "\211\300\211\211\211\211\211\211\211\257	\207" [nil] 19 "\n\n(fn NAME)"]] 4 (#$ . 237179)])
#@172 Return list of signals in IN-LIST that are also in NOT-LIST.
Also remove any duplicates in IN-LIST.
Signals must be in standard (base vector) form.

(fn IN-LIST NOT-LIST)
(defalias 'verilog-signals-in #[514 "\300\301\302\303\304$\300\301\302\303\304$\305\203 \306@@\307#\210A\262\202
\203T\310@\211@\262\"\203M\310@\211@\262\"\204M@B\262\306@\211@\262\307#\210A\262\202 \211\237\207" [make-hash-table :test equal :rehash-size 4.0 nil puthash t gethash] 9 (#$ . 237469)])
#@175 Return list of signals in IN-LIST that aren't also in NOT-LIST.
Also remove any duplicates in IN-LIST.
Signals must be in standard (base vector) form.

(fn IN-LIST NOT-LIST)
(defalias 'verilog-signals-not-in #[514 "\300\301\302\303\304$\305\203\306@@\307#\210A\262\202\203B\310@\211@\262\"\204;@B\262\306@\211@\262\307#\210A\262\202\211\237\207" [make-hash-table :test equal :rehash-size 4.0 nil puthash t gethash] 8 (#$ . 237973)])
#@237 Return list of signals in IN-LIST that aren't also in NOT-LIST.
Also remove any duplicates in IN-LIST.
Any structure in not-list will remove all members in in-list.
Signals must be in standard (base vector) form.

(fn IN-LIST NOT-LIST)
(defalias 'verilog-signals-not-in-struct #[514 "\300\301\302\303\304$\305\211\211\203\306@@\307#\210A\262\202	\203l@\211@\262\262\310\"\204e\307\262\311\312\"\203N\313\314\"\262\205I\310\"?\262\2023\203e@B\262\306@\211@\262\307#\210A\262\202\237\207" [make-hash-table :test equal :rehash-size 4.0 nil puthash t gethash string-match "^\\([^\\].*\\)\\.[^.]+$" match-string 1] 10 (#$ . 238438)])
#@88 Return list of signals in IN-LIST that are memorized (multidimensional).

(fn IN-LIST)
(defalias 'verilog-signals-memory #[257 "\300\203\301@8\203@B\262A\262\202\207" [nil 3] 4 (#$ . 239116)])
#@47 Compare signal A and B for sorting.

(fn A B)
(defalias 'verilog-signals-sort-compare #[514 "\211@\262\211@\262\231\207" [] 5 (#$ . 239328)])
#@94 Return list of signals in IN-LIST that aren't parameters or numeric constants.

(fn IN-LIST)
(defalias 'verilog-signals-not-params #[257 "\300\203!\301\302\303@\211@\262P!!\204@B\262A\262\202\211\237\207" [nil boundp intern "vh-"] 7 (#$ . 239480)])
#@98 Return list of signals where FUNC is true executed on each signal in IN-LIST.

(fn FUNC IN-LIST)
(defalias 'verilog-signals-with #[514 "\300\203@!\203@B\262A\262\202\211\237\207" [nil] 5 (#$ . 239748)])
#@151 Return a list of signals in IN-LIST, with buses combined.
Duplicate signals are also removed.  For example A[2] and A[1] become A[2:1].

(fn IN-LIST)
(defalias 'verilog-signals-combine-bus #[257 "\300\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\301\302\"\262\203\305@\262\204{\211@\262\262\f\300\262\300\262\3038\262\262	\3048\262\262\3058\262\262\3068\262\262\3078\262\262\3108\262\262\3118\262\262\312\262\312\262\211A@\262\262\211\205\213\313!\262\211\203\344\314\315\"\203\254\316\317\320\"!\262\316\317\303\"!\211\262\204\303\314\321\"\203\344\316\317\320\"!\262
\211\262\203\344\n\203\331
]\262\f\n^\262\n\202\353
\262\f\262\n\202\353\211\203\353\211\262A\262@\262\203y\211@\262\232\203y\203\211A@\262\232\204\322\262\3038\262\203&\323\262\2062\3048\262\262\206@\3058\262\262\206M\3068\262\262\206Z\3078\262\262\206g\3108\262\262\206t\3118\262\262\202\206\221\205\221\324\325
!\326\325!\327\260\nQ\n\n\n\n\n	\257	\266\211B\262\300\262\f\202\207" [nil sort verilog-signals-sort-compare 2 3 4 5 6 7 8 "" verilog-simplify-range-expression string-match "^\\[\\([0-9]+\\):\\([0-9]+\\)\\]$" string-to-number match-string 1 "^\\[\\([0-9]+\\)\\]$" ", Couldn't Merge" ", ..." "[" int-to-string ":" "]"] 37 (#$ . 239972)])
#@154 Return tieoff expression for given SIG, with appropriate width.
Tieoff value uses `verilog-active-low-regexp' and
`verilog-auto-reset-widths'.

(fn SIG)
(defalias 'verilog-sig-tieoff #[257 "\203\211@\262\304	\305#)\266\203\203\306\202\307\310\267\202+\311\202^\312\202^\313\211A@\262!\262\211\204>\314\202\\\305\315\"\203X\211\3168\262\203S\317\202T\320P\202\\\321\322Q\262P\207" [verilog-active-low-regexp verilog-case-fold case-fold-search verilog-auto-reset-widths nil string-match "~" "" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 35 unbased 39)) "0" "'0" verilog-make-width-expression "'0/*NOWIDTH*/" "^[0-9]+$" 5 "'sh0" "'h0" "{" "{1'b0}}"] 8 (#$ . 241436)])
#@127 For debug, dump the `verilog-read-decls' structure DECLS.
Use optional HEADER and PREFIX.

(fn DECLS &optional HEADER PREFIX)
(defalias 'verilog-decls-princ #[769 "\205\235\203\f\300!\210\211\206\301\262\302\211\303H\262\304P\305P#\210\302\211\306H\262\307P\305P#\210\302\211\310H\262\311P\305P#\210\302\211\312H\262\313P\305P#\210\302\211\314H\262\315P\305P#\210\302\211\316H\262\317P\305P#\210\302\211\320H\262\321P\305P#\210\302\211\322H\262\323P\305P#\210\324\211\325H\262\326P\305P#\210\300\327!\207" [princ "" verilog-signals-princ 0 "Outputs:\n" "  " 1 "Inout:\n" 2 "Inputs:\n" 3 "Vars:\n" 5 "Assigns:\n" 6 "Consts:\n" 7 "Gparams:\n" 8 "Interfaces:\n" verilog-modport-princ 4 "Modports:\n" "\n"] 8 (#$ . 242189)])
#@108 For debug, dump internal SIGNALS structures, with HEADER and PREFIX.

(fn SIGNALS &optional HEADER PREFIX)
(defalias 'verilog-signals-princ #[769 "\205\232\203\f\300!\210\205\232@A\262\300!\210\300\301!\210\300\211@\262!\210\300\301!\210\300\302!\210\300\211A@\262!\210\300\303!\210\300\3048\262!\210\300\305!\210\300\3068\262!\210\300\307!\210\300\3108\262!\210\300\311!\210\300\3128\262!\210\300\313!\210\300\3148\262!\210\300\315!\210\300\3168\262!\210\300\317!\210\300\3208\262!\210\300\321!\266\202\f\207" [princ "\"" "  bits=" "  cmt=" 2 "  mem=" 3 "  enum=" 4 "  sign=" 5 "  type=" 6 "  dim=" 7 "  modp=" 8 "\n"] 8 (#$ . 242961)])
#@110 For debug, dump internal MODPORTS structures, with HEADER and PREFIX.

(fn MODPORTS &optional HEADER PREFIX)
(defalias 'verilog-modport-princ #[769 "\205N\203\f\300!\210\205N@A\262\300!\210\300\301!\210\300\211@\262!\210\300\301!\210\300\302!\210\300\211A@\262!\210\300\303!\210\304\3058\262\306P\307P#\266\202\f\207" [princ "\"" "  clockings=" "\n" verilog-decls-princ 2 "  syms:\n" "    "] 9 (#$ . 243644)])
#@55 Internal.  Move point back to beginning of inst-name.
(defalias 'verilog-read-inst-backward-name #[0 "\300 \210\301\211\204C\302\301\211\211\211\204/\303#\203/\304\305\224!\203(\303\306\301\307#\210\202\f\305\224\262\202\f\266\310\311!\203=\300 \210\202\307\262\202\210\310\312!\203y\313 \210\314\301\211\211\211\204t\303#\203t\304\305\224!\203m\303\306\301\307#\210\202Q\305\224\262\202Q\266\202D\315\301x\207" [verilog-backward-open-paren nil "\\()\\|\\b[a-zA-Z0-9`_$]\\|\\]\\)" re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t looking-at ")" "\\]" verilog-backward-open-bracket "\\(\\b[a-zA-Z0-9`_$]\\|\\]\\)" "a-zA-Z0-9`_$"] 9 (#$ . 244082)])
#@71 Set match data 0 with module_name when point is inside instantiation.
(defalias 'verilog-read-inst-module-matcher #[0 "\300 \210\301\302\211\211\211\204*\303#\203*\304\305\224!\203#\303\306\302\307#\210\202\305\224\262\202\266\310\311!\203^\312 \210\313\302\211\211\211\204\\\303#\203\\\304\305\224!\203U\303\306\302\307#\210\2029\305\224\262\2029\266\314\302x\210\212\315 \210`Sf)\316=\203\234\313\302\211\211\211\204\226\303#\203\226\304\305\224!\203\217\303\306\302\307#\210\202s\305\224\262\202s\266\314\302x\210\310\317!\210\320\305\224\305\225\"\207" [verilog-read-inst-backward-name "\\(\\b[a-zA-Z0-9`_$]\\|)\\)" nil re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t looking-at ")" verilog-backward-open-paren "\\b[a-zA-Z0-9`_$]" "a-zA-Z0-9`_$" verilog-backward-syntactic-ws-quick 35 "[a-zA-Z0-9`_$]+" buffer-substring-no-properties] 8 (#$ . 244781)])
#@56 Return module_name when point is inside instantiation.
(defalias 'verilog-read-inst-module #[0 "\212\300 )\207" [verilog-read-inst-module-matcher] 1 (#$ . 245696)])
#@58 Return instance_name when point is inside instantiation.
(defalias 'verilog-read-inst-name #[0 "\212\300 \210\301\302!\210\303\304\224\304\225\")\207" [verilog-read-inst-backward-name looking-at "[a-zA-Z0-9`_$]+" buffer-substring-no-properties 0] 3 (#$ . 245867)])
#@43 Return module name when after its ( or ;.
(defalias 'verilog-read-module-name #[0 "\212\301\302!\210\303\211\211\211\204,\301#\203,\304\305\224!\203%\301\306\303\307#\210\202	\305\224\262\202	\266\305\225b\210\310\303\211\211\211\204Y\311#\203Y\304\305\224!\203R\311\312\303\307#\210\2026\305\225\262\2026\266\313\314\305\224\305\225\"\307\")\207" [verilog-defun-re re-search-backward "[(;]" nil verilog-inside-comment-or-string-p 0 "[/\"]" t "\\b[a-zA-Z0-9`_$]+" re-search-forward "[/\"\n]" verilog-symbol-detick buffer-substring-no-properties] 8 (#$ . 246138)])
#@74 Return list of parameters and values when point is inside instantiation.
(defalias 'verilog-read-inst-param-value #[0 "\212\300 \210\301\302\211\211\211\204+\303#\203+\304\305\224!\203$\303\306\302\307#\210\202\305\224\262\202\266\310\311!\205B`\302\211\211\211\312 \210\313\307\302\211\204b\314#\203b\304\305\224!\203[\314\315\302\307#\210\202?\305\225\262\202?\266\203\203?\316\302\211\211\211\204\216\314#\203\216\304\305\224!\203\207\314\315\302\307#\210\202k\305\225\262\202k\266\317\302x\210\310\320!\210\321\305\224\305\225\"\262\322\302\211\211\211\204\307\314#\203\307\304\305\224!\203\300\314\315\302\307#\210\202\244\305\225\262\202\244\266`\262\323 \210\321`S\"\324 \325\326\"\216\327\330\302\211\305\331#\203\332$\262G\305\224G\\^\262\202\341\266\206\262\333\330\302\211\305\331#\203*\332$\262G\305\224G\\^\262\202\266\206\262)\266\202\262DB\262\202;\266\205)\207" [verilog-read-inst-backward-name "\\(\\b[a-zA-Z0-9`_$]\\|)\\)" nil re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t looking-at ")" verilog-backward-open-paren "\\." re-search-forward "[/\"\n]" "\\([a-zA-Z0-9`_$]\\)" "a-zA-Z0-9'_$" "[a-zA-Z0-9`_$]+" buffer-substring-no-properties "(" verilog-forward-close-paren match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "^\\s-+" "" string-match replace-match "\\s-+$"] 18 (#$ . 246729)])
#@148 Return parameter list inside auto.
Optional NUM-PARAM and MAX-PARAM check for a specific number of parameters.

(fn NUM-PARAM &optional MAX-PARAM)
(defalias 'verilog-read-auto-params #[513 "\300\212`Sf\301=\204\302\303!\210\304\305!\203\"\306\303!B\262\307\225b\210\202)\2035GX\2045\310\311\312 #\210\204<\262\203NGY\204N\310\313\312 #\210\211\237\207" [nil 42 backward-sexp 1 looking-at "(?\\s *\"\\([^\"]*\\)\"\\s *,?" match-string-no-properties 0 error "%s: Expected %d parameters" verilog-point-text "%s: Expected <= %d parameters"] 7 (#$ . 248187)])
#@151 Compute signal declaration information for the current module at point.
Return an array of [outputs inouts inputs wire reg assign const gparam intf].
(defalias 'verilog-read-decls #[0 "\306 \206d\307\211\211\310\311\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\21198\212\312 \210\313`\"\"`!W\203G\314\315!\203i\314\316!\203b\317\320!\262\321\322!\210\202>\314\323!\203\215\320u\210\314\316!\203}\317\320!\262\321\324!\204>\325\326\327 `#\210\202>\314\330!\203\241\331\332\311\310#\204>\311y\210\202>\314\333!\203\265\331\334\311\310#\204>\311y\210\202>\314\335!\203\316\336u\210\321\337!\204>\325\340\327 `#\210\202>g\341=\203\346\331\342\311\310#\204>\325\343\327 `#\210\202>g\344=\203\206\203\372\311\262\311\262	\202\200\203e\310=\204e9
8\311\211\211\211\211\211\345									&	\266\211AA\240\266@\262A\262\211\307H9\211\336H\211\320H8\311\262\311\262\311\262
\311\262\n\307\262\311\262	\311\262\311\262\311\262\202\200\311\262\311\262\311\262
\311\262\n\307\262\311\262	\311\262\311\262\311\262\336u\210\202>g\346=\203\230\310\262	\311\262\n\336u\210\202>g\347=\203\257=\203\257\311\262	\336u\210\202>\314\350!\203\300T\262\336u\210\202>\314\351!\203\337S\262\336u\210W\203>\311\262
\311\262	\202>\314\352!\203~\353`\354\336!\210`\"\262\f	\203	AAA\n\3558\262\203\n\3558\262
P\202\f\240\210\202>
\203P
B\262\356\357\311\211\307\360#\203H\361$\262G\307\224G\\^\262\202)\266\206\262\202>\356\357\311\211\307\360#\203v\361$\262G\307\224G\\^\262\202W\266\206\262\202>\314\362!\203;\307\225b\210\262\317\336!\262\f\360\363\317\336!\"\203\240\364P\262\f\314\365!\203\305\307\225b\210\366\317\336!Q\262\f\360\363\317\336!\"\203\240\364P\262\f\202\240\367\267\202\f\311\262\311\262\311\262	\311\262\n\311\262\311\262\311\262\311\262\311\262\370\262
\310\262\262\202>\311\262\311\262\311\262	\311\262\n\311\262\311\262\311\262\311\262\311\262\371\262
\310\262\262\202>\311\262\311\262\311\262	\311\262\n\311\262\311\262\311\262\311\262\311\262\305\262
\310\262\262\202>\311\262\311\262\311\262	\311\262\311\262\311\262\311\262\311\262\301\262
\310\262\262\202>\203\201\203z\364
Q\202|\262\202>\311\262\311\262\311\262	\311\262\311\262\311\262\262\304\262
\311\262\202>\311\262\311\262\311\262	\311\262\311\262\311\262\311\262\311\262\303\262
\262\202>\311\262\311\262\311\262	\311\262\311\262\311\262\311\262\311\262\302\262
\262\202>\262\202>\310\262\202>\204>T\262 \202>S\262 \202>\310\262\202>\372\232\203 \n\373\232\204 \310\262\202>\374\267\202J\203>\310\262\310\262	\202>\310\262\202>\202>\310\262	\202>\311y\210\202>\204\216\375\f!\203\216\203n\203g\364
Q\202i\262\202>\311\262\311\262\311\262	\311\262\262\311\262\262\304\262
\311\262\202>\203\337\336=\203\337\204\337\314\376!\204\253\314\377!\203\337\320\225\203\264\320\225b\210\311\262\311\262\311\262	\311\262\262\311\262\311\262\317\320!\262\311\262\n\262\300\262
\310\262\202>\314\201A!\203\366\307\225b\210\204>\311\262
\202>\310=\203.@\235\204.\311\211E\266\203\262B\262\3459
8#B\262\311\2118\3119\202>\203L\203L\fAA@B\240\266\311\262\202>\203\250\201B\232\203\250\310=\204\2429
8\311\211\211\211\211\211\345									&	\266\211AA\240\266@\262A\262\211\307H9\211\336H\211\320H8\311\262\202>\310=\203\340@\235\204\340\311\211E\266\203\262B\262\3459
8#B\262\311\2118\3119\202>\f\203>\204>\307=\203>@\235\204>\203=\203>\311\211\n\n\n\n\257	\266\211\262\n\f\nJBL\210\202>\336u\210\201C\364!\210\202J9\237
\2378\237\f\237\237\237\n\237	\237\237\345									&	\266\211\262.	\207" [sigs-intf sigs-gparam sigs-const sigs-assign sigs-var sigs-inout verilog-get-end-of-defun 0 t nil verilog-beg-of-defun-quick verilog-read-auto-constants looking-at "//" "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)" match-string-no-properties 2 search-forward "\n" "/\\*" "*/" error "%s: Unmatched /* */, at char %d" verilog-point-text "^\\s *`pragma\\s +protect\\s +begin_protected" re-search-forward "^\\s *`pragma\\s +protect\\s +end_protected" "^\\s *`protected\\>" "^\\s *`endprotected\\>" "(\\*" 1 "*)" "%s: Unmatched (* *), at char %d" 34 "[^\\]\"" "%s: Unmatched quotes, at char %d" 59 vector 61 44 "[{(]" "[})]" "\\[" buffer-substring-no-properties forward-sexp 3 "\\s-+" "" string-match replace-match "\\s-*\\([a-zA-Z0-9`_$]+\\|\\\\[^ 	\n\f]+\\)" "^\\\\" " " "\\s-*::\\s-*\\(\\*\\|[a-zA-Z0-9`_$]+\\|\\\\[^ 	\n\f]+\\)" "::" #s(hash-table size 55 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("input" 716 "output" 756 "inout" 796 "parameter" 836 "wire" 873 "reg" 873 "tri" 873 "tri0" 873 "tri1" 873 "triand" 873 "trior" 873 "trireg" 873 "uwire" 873 "wand" 873 "wor" 873 "byte" 873 "shortint" 873 "int" 873 "longint" 873 "integer" 873 "time" 873 "supply0" 873 "supply1" 873 "bit" 873 "logic" 873 "shortreal" 873 "real" 873 "realtime" 873 "string" 873 "event" 873 "chandle" 873 "assign" 928 "localparam" 962 "genvar" 962 "signed" 996 "unsigned" 996 "assert" 1003 "assume" 1003 "cover" 1003 "expect" 1003 "restrict" 1003 "class" 1009 "covergroup" 1009 "function" 1009 "property" 1009 "randsequence" 1009 "sequence" 1009 "task" 1009 "endclass" 1022 "endgroup" 1022 "endfunction" 1022 "endproperty" 1022 "endsequence" 1022 "endtask" 1022 "modport" 1030)) sigs-in sigs-out "clocking" "default" #s(hash-table size 7 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("import" 1063 "type" 1077 "var" 1083 "`ifdef" 1086 "`ifndef" 1086 "`elsif" 1086 "`line" 1092)) verilog-typedef-name-p "\\s-*#" "\\s-*\\(\\.\\(\\s-*[a-zA-Z`_$][a-zA-Z0-9`_$]*\\)\\|\\)\\s-*[a-zA-Z`_$][a-zA-Z0-9`_$]*" verilog-keywords "\\s-*\\." "endclocking" skip-syntax-forward] 54 (#$ . 248772)])
#@78 For `verilog-read-sub-decls', process next signal as under interfaced block.
(defvar verilog-read-sub-decls-in-interfaced nil (#$ . 254959))
#@77 For `verilog-read-sub-decls', gate IO pins remaining, nil if non-primitive.
(defvar verilog-read-sub-decls-gate-ios nil (#$ . 255106))
#@84 For `verilog-read-sub-decls-line', decode a signal type.

(fn PAR-VALUES PORTDATA)
(defalias 'verilog-read-sub-decls-type #[514 "\211\3008\262\301\"\302\235\203\303\207\211\203\211A@\207\207" [6 assoc ("wire" "reg") nil] 6 (#$ . 255247)])
#@113 For `verilog-read-sub-decls-line', add a signal.

(fn SUBMODDECLS PAR-VALUES COMMENT PORT SIG VEC MULTIDIM MEM)
(defalias 'verilog-read-sub-decls-sig #[2056 "\306=\307\205\353\310!\262\203\202\310!\262\203&\310!\262\2030\311\310\"\262\2039\310!\262?\206A\312\232?\205\353\313\211\314H\262\"\211\262\204\\\315\232\203\233\203j\211A@\262\202k\316\nP\307\3178\262\320\"\n\307\257	\266\211	B\211\207\313\211\321H\262\"\211\262\204\262\322\232\203\361\203\300\211A@\262\202\301\323\nP\307\3178\262\320\"\n\307\257	\266\211\nB\211\207\313\211\324H\262\"\211\262\204\325\232\203G\203\211A@\262\202\326\nP\307\3178\262\320\"\n\307\257	\266\211B\211\207\313\211\327H\262\"\211\262\203\227\203f\211A@\262\202g\316\nP\307\3178\262\320\"\n\307\257	\266\211\fB\211\207
\205\246\313\211\330H\262\"\211\262\205\353\203\272\211A@\262\202\273\316\nP\307\3178\262\320\"\n\307\257	\266\211\fB\211\207" [verilog-read-sub-decls-gate-ios sigs-inout sigs-out sigs-in sigs-intf verilog-read-sub-decls-in-interfaced t nil verilog-symbol-detick-denumber mapcar "" assoc 1 "inout" "To/From " 5 verilog-read-sub-decls-type 0 "output" "From " 2 "input" "To " 8 3 sigs-intfd] 28 (#$ . 255503)])
#@122 For `verilog-read-sub-decls-line', parse a subexpression and add signals.

(fn SUBMODDECLS PAR-VALUES COMMENT PORT EXPR)
(defalias 'verilog-read-sub-decls-expr #[1285 "\300\301\302\211\303\304#\203%\305$\262G\303\224G\\^\262\202\266\206\262\306\307\302\211\303\304#\203O\305$\262G\303\224G\\^\262\2020\266\206\262\304\310\"\203\311\312\313\"\314\"\302\211A\262\242\211\262\205~\315%\210\202c\207\302\211\211\211\306\307\302\211\303\304#\203\251\305$\262G\303\224G\\^\262\202\212\266\206\262\316\307\302\211\303\304#\203\324\305$\262G\303\224G\\^\262\202\265\266\206\262\317\301\302\211\303\304#\203\377\305$\262G\303\224G\\^\262\202\340\266\206\262\304\320\"\203\312\313\"\262\303\225\302O\262\202\222\304\321\"\203\222\312\313\"\322 \323\324\"\216\325\307\302\211\303\304#\203V\305$\262G\303\224G\\^\262\2027\266\206\262\326\307\302\211\303\304#\203\200\305$\262G\303\224G\\^\262\202a\266\206\262)\266\202\262\303\225\302O\262\304\327\"\203\264\203\243B\262\312\313\"\262\303\225\302O\262\202\222\304\330\"\203\315\312\313\"\262\303\225\302O\262\202\264\205\354\304\331\"\205\354\332				&\207" ["/\\*\\(\\.?\\[\\([^*]+\\|[*][^/]\\)+\\]\\)\\*/" "\\1" nil 0 string-match replace-match "^\\s-*[---+~!|&]+\\s-*" "" "^\\s-*{\\(.*\\)}\\s-*$" split-string match-string 1 "[{},]" verilog-read-sub-decls-expr "^\\s-*[a-zA-Z_][a-zA-Z_0-9]*\\s-*'" "^\\s-*(\\([^)]*\\))\\s-*$" "^\\s-*\\(\\\\[^ 	\n\f]+\\s-\\)" "^\\s-*\\([a-zA-Z_][a-zA-Z_0-9]*\\)" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "^\\s-+" "\\s-+$" "^\\s-*\\(\\[\\([^][]+\\|\\[[^][]+\\]\\)*\\]\\)" "^\\s-*\\.\\(\\(\\[[^]]+\\]\\)+\\)" "^\\s-*$" verilog-read-sub-decls-sig] 22 (#$ . 256934)])
#@181 For `verilog-read-sub-decls', read lines of port defs until none match.
Inserts the list of signals found, using submodi to look up each port.

(fn SUBMODDECLS PAR-VALUES COMMENT)
(defalias 'verilog-read-sub-decls-line #[771 "\300\211\212\301y\210?\205\225\302\303!\203\304\301!\262\305\225b\210\202}\302\306!\2031\304\301!\307P\262\305\225b\210\202}\302\310!\203K\311\304\301!\312\300\211\211&\210\300\262\202}\302\313!\203g\311\304\301!\307P\312\300\211\211&\210\300\262\202}\302\314!\203w\300\262\305\225b\210\202}\300\262\312\262\211\203\217\302\315!\204\217\302\316!\203\375\311\304\301!\317 \320\321\"\216\322\323\300\211\305\324#\203\301\325$\262G\305\224G\\^\262\202\242\266\206\262\326\323\300\211\305\324#\203\353\325$\262G\305\224G\\^\262\202\314\266\206\262)\266\202\300\211\211&\210\202\217\302\327!\203u\311\304\301!\317 \320\321\"\216\322\323\300\211\305\324#\2037\325$\262G\305\224G\\^\262\202\266\206\262\326\323\300\211\305\324#\203a\325$\262G\305\224G\\^\262\202B\266\206\262)\266\202\304\330!\300\211&\210\202\217\302\331!\203\217\332\333`\334\335!\210\336\301!\210`S\"%\210\301y\210\202)\207" [nil 1 looking-at "\\s-*\\.\\s-*\\([a-zA-Z0-9`_$]*\\)\\s-*(\\s-*" match-string-no-properties 0 "\\s-*\\.\\s-*\\(\\\\[^ 	\n\f]*\\)\\s-*(\\s-*" " " "\\s-*\\.\\s-*\\([a-zA-Z0-9`_$]*\\)\\s-*[,)/]" verilog-read-sub-decls-sig t "\\s-*\\.\\s-*\\(\\\\[^ 	\n\f]*\\)\\s-*[,)/]" "\\s-*\\.[^(]*(" "[^\n]*AUTONOHOOKUP" "\\([a-zA-Z_][a-zA-Z_0-9]*\\)\\s-*)" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] "^\\s-+" "" string-match replace-match "\\s-+$" "\\([a-zA-Z_][a-zA-Z_0-9]*\\)\\s-*\\(\\[[^][]+\\]\\)\\s-*)" 2 "[^)]+" verilog-read-sub-decls-expr buffer-substring-no-properties search-backward "(" verilog-forward-sexp-ign-cmt] 23 (#$ . 258828)])
#@171 For `verilog-read-sub-decls', read lines of UDP gate decl until none match.
Inserts the list of signals found.

(fn SUBMODDECLS PAR-VALUES COMMENT SUBMOD END-INST-POINT)
(defalias 'verilog-read-sub-decls-gate #[1285 "\212\302\"A`W\205w\303\304!\203\305\306!\210\202\303\307!\203/\305\310!\204\311\312\313 `#\210\202\303\314!\203H\315u\210\305\316!\204\311\317\313 `#\210\202\303\320!\203m\321\225b\210\211@\206X\322\211A\262\323\324\325\321!%\210\202\315u\210\326\327!\210\202\262)\207" [verilog-gate-ios verilog-read-sub-decls-gate-ios assoc looking-at "//" search-forward "\n" "/\\*" "*/" error "%s: Unmatched /* */, at char %d" verilog-point-text "(\\*" 1 "*)" "%s: Unmatched (* *), at char %d" "\\s-*[a-zA-Z0-9`_$({}\\][^,]*" 0 "input" verilog-read-sub-decls-expr "primitive_port" match-string-no-properties skip-syntax-forward " "] 13 (#$ . 260748)])
#@771 Internally parse signals going to modules under this module.
Return an array of [ outputs inouts inputs ] signals for modules that are
instantiated in this module.  For example if declare A A (.B(SIG)) and SIG
is an output, then SIG will be included in the list.

This only works on instantiations created with /*AUTOINST*/ converted by
\[verilog-auto-inst].  Otherwise, it would have to read in the whole
component library to determine connectivity of the design.

One work around for this problem is to manually create // Inputs
and // Outputs comments above subcell signals, then have an empty
AUTOINST, for example:

        submod SubModuleName (
            // Outputs
            .out (out),
            // Inputs
            .in  (in)
            /*AUTOINST*/);
(defalias 'verilog-read-sub-decls #[0 "\212\306 \307\211\211\211\211\211\211\211\310 \210\311\312\307\211\204:\313#\203:\314\315\224!\2033\313\316\307\312#\210\202\315\225\262\202\266\203\203U\212\315\224b\210
\205O$\205O\317 \262\314 \204Q\320 \321 %\235\322\323R\307\211\203\266\324\262\307\211\211\211\211\211\211\211\211\325									&	\266\211\262\322Q\262\326 \210\212\327\330!\210`)\262`\262	\330u\210\331	\f%\266\202Q\332\312\"\211\262\203O\333\334\"\262\262\307&\326 \210\212\327\330!\210`)\262`\262	\312'\313\335	\312#\203\362\336#\210\202\337)b\210\313\337	\312#\203\n\336#\210\202\367b\210\313\340	\312#\203!\336#\210\202b\210\313\341	\312#\2038\336#\210\202%b\210\313\342	\312#\203O\336#\210\202<\266)\202\343\f\237!\343\237!\343\n\237!\343	\237!\343\237!\325%\266\205-\266\204)\207" [sigs-intfd sigs-intf sigs-in sigs-inout sigs-out verilog-auto-inst-param-value verilog-get-end-of-defun nil verilog-beg-of-defun-quick "\\(/\\*AUTOINST\\((.*?)\\)?\\*/\\|\\.\\*\\)" t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" verilog-read-inst-param-value verilog-read-inst-module verilog-read-inst-name " of " ".v" primitive vector verilog-backward-open-paren verilog-forward-sexp-ign-cmt 1 verilog-read-sub-decls-gate verilog-modi-lookup verilog-modi-cache-results verilog-read-decls "\\s *(?\\s *// Interfaced" verilog-read-sub-decls-line "\\s *(?\\s *// Interfaces" "\\s *(?\\s *// Outputs" "\\s *(?\\s *// Inouts" "\\s *(?\\s *// Inputs" verilog-signals-combine-bus verilog-auto-inst-param-value-type verilog-gate-keywords verilog-read-sub-decls-gate-ios verilog-read-sub-decls-in-interfaced] 29 (#$ . 261644)])
#@143 Return an array of [ pins ] for the current instantiation at point.
For example if declare A A (.B(SIG)) then B will be included in the list.
(defalias 'verilog-read-inst-pins #[0 "\212`\300\211\301 \210\302\303\304#\203,\305\306!\262\307 \204\211CB\262\310\311!\203\312\306!\210\202\313!\266\203)\207" [nil verilog-backward-open-paren re-search-forward "\\.\\([^(,) 	\n\f]*\\)\\s-*" t match-string-no-properties 1 verilog-inside-comment-or-string-p looking-at "(" verilog-forward-sexp-ign-cmt vector] 7 (#$ . 264175)])
#@76 Return an array of [ pins ] for the current argument declaration at point.
(defalias 'verilog-read-arg-pins #[0 "\212`\300\211\301 \210\302\303\304#\203\"\305\306!\262\307 \204\211CB\262\202\310!\266\203)\207" [nil verilog-backward-open-paren re-search-forward "\\([a-zA-Z0-9$_.%`]+\\)" t match-string-no-properties 1 verilog-inside-comment-or-string-p vector] 7 (#$ . 264713)])
#@103 Return a list of AUTO_CONSTANTs used in the region from BEG to END-MOD-POINT.

(fn BEG END-MOD-POINT)
(defalias 'verilog-read-auto-constants #[514 "\212\300\211b\210\301\302\303#\203C\304\305!\204\306\307\310 \"\210\311\312\"\210\212\313u\210\314\315!\210\313u\210`)\262\301\316\303#\203\317\315!\300\211EB\262\202.\266\202)\207" [nil re-search-forward "\\<AUTO_CONSTANT" t looking-at "\\s *(" error "%s: Missing () after AUTO_CONSTANT" verilog-point-text search-forward "(" -1 verilog-forward-sexp-cmt 1 "\\s-*\\([\"a-zA-Z0-9$_.%`]+\\)\\s-*,*" match-string-no-properties] 8 (#$ . 265109)])
#@34 True if any AUTO_LISP in buffer.
(defvar verilog-cache-has-lisp nil (#$ . 265720))
(make-variable-buffer-local 'verilog-cache-has-lisp)
#@63 Set `verilog-cache-has-lisp' if any AUTO_LISP in this buffer.
(defalias 'verilog-read-auto-lisp-present #[0 "\212eb\210\301\302\303\304#\211)\207" [verilog-cache-has-lisp re-search-forward "\\<AUTO_LISP(" nil t] 4 (#$ . 265862)])
#@140 Look for and evaluate an AUTO_LISP between START and END.
Must call `verilog-read-auto-lisp-present' before this function.

(fn START END)
(defalias 'verilog-read-auto-lisp #[514 "\205(\212b\210\302\303\304#\205'\305u\210`\306\307!\210`\304\310\311#\210)\266\202)\207" [verilog-cache-has-lisp verilog-in-hooks re-search-forward "\\<AUTO_LISP(" t -1 verilog-forward-sexp-cmt 1 eval-region nil] 8 (#$ . 266100)])
#@262 Recursive routine for parentheses/bracket matching.
EXIT-KEYWD is expression to stop at, nil if top level.
RVALUE is true if at right hand side of equal.
TEMP-NEXT is true to ignore next token, fake from inside case statement.

(fn EXIT-KEYWD RVALUE TEMP-NEXT)
(defalias 'verilog-read-always-signals-recurse #[771 "\304\232\305\211\211\211\211\211\211\211\211m\204\226\204\226\306\307!\203!\310\311!\210\202\217\306\312!\2037\310\313!\204\217\314\315\316 `#\210\202\217\306\317!\203P\320u\210\310\321!\204\217\314\322\316 `#\210\202\217\323`\212\324\305w\325=\203^\320u\210`)\"\262	\262\305\262\326\232\203\203\327\330\305\331#\204\213\314\332\316 `#\210\202\213\203\224\333\232\203\224\305\262\202\213\203\244\306\334!\203\244\331\262\202\213\f\203\320
\232\204\277\f\335\232\203\320\336\232\203\320\306\337!\204\320\331\262Gu\210\202\213\340\267\202\305\262	\262\f\f\204\346\331\262\320u\210\202\213\306\341!\203\371\325\225b\210\202\213\306\342!\203\343u\210\344\335\331\305#\210\202\213\320u\210\202\213\306\337!\203\320u\210\202R\f\345\267\2026\305\262\305\262\f\202R\202R\202R\202R\203G\305\262	\262\f\305\262\202R\204R\331\262\305\262\f\320u\210\202\213\203fJBL\210\305\262\204\204`Sf\346=\203}\347	\"\305\202\204\347\n	\"\305\305\262\331\262\f\320u\210\202\213\320u\210\344\350
\305#\210\202\213\320u\210\344\351\331\305#\210\202\213\320u\210\203\263\305\262\352\232\203\317\344\353\305\331#\210\344\353\331\305#\210\344\354\305\211#\210\202\213\344\354\331\305#\210\202\213\355\356!\210\344\357\305\211#\210\305\262	\262\f\f\204\213\331\262\202\213\355\356!\210\344\304\331\305#\210\305\262	\262\f\f\204\213\331\262\202\213\360\361\n\"\203\210\362\235\203%\331\262\202\201\211\2048\235\2048\360\363\n\"\203>\305\262\202\201\364	!\262	\203OJBL\210\n\203X\365\202b\203a\366\202b\301\262?\206p\367	J\"?\205y\305\211E\262\305\262\331\262\324\305w\210\202\213\320u\210\262\355\370!\210\202\f\205\245JBL\210\305\211\262\207" [sigs-out-d sigs-out-unk sigs-out-i verilog-keywords "endcase" nil looking-at "//" search-forward "\n" "/\\*" "*/" error "%s: Unmatched /* */, at char %d" verilog-point-text "(\\*" 1 "*)" "%s: Unmatched (* *), at char %d" buffer-substring-no-properties "a-zA-Z0-9$_.%`" 0 "\"" re-search-forward "[^\\]\"" t "%s: Unmatched quotes, at char %d" "else" "[^ 	\n\f]" "'}" "}" "::" #s(hash-table size 12 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (";" 215 "'" 236 ":" 273 "=" 344 "?" 400 "[" 413 "(" 425 "begin" 472 "case" 500 "casex" 500 "casez" 500 "randcase" 500)) "'[sS]?[hdxboHDXBO]?[ 	]*[0-9a-fA-F_xzXZ?]+" "'{" 2 verilog-read-always-signals-recurse #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("endcase" 292 "?" 301 "]" 304 "'}" 307)) 60 append ":" "]" "for" ";" ")" skip-syntax-forward "w_" "end" string-match "^[$`a-zA-Z_]" ("`ifdef" "`ifndef" "`elsif") "^\\$" verilog-symbol-detick-denumber sigs-temp sigs-in assoc " "] 17 (#$ . 266529)])
#@72 Parse always block at point and return list of (outputs inout inputs).
(defalias 'verilog-read-always-signals #[0 "\212\305\211\305\211\305\306\305\211\211#\210\307	\n\"\305	\f\310$\266\204.\207" [sigs-out-d sigs-out-i sigs-out-unk sigs-temp sigs-in nil verilog-read-always-signals-recurse append vector] 10 (#$ . 269653)])
#@69 Parse module at point and return list of ( ( file instance ) ... ).
(defalias 'verilog-read-instants #[0 "\301 \210\302 \303\211\212`W\203N\304`\305\306\303%\262@\305V\204$\3078\203*\310y\210\202\311 \210\312\313!\203H\314\310!\314\315!\235\204FDB\262\266\310y\210\202)\207" [verilog-keywords verilog-beg-of-defun-quick verilog-get-end-of-defun nil parse-partial-sexp 0 t 5 1 beginning-of-line looking-at "^\\s-*\\([a-zA-Z0-9`_$]+\\)\\s-+\\([a-zA-Z0-9`_$]+\\)\\s-*(" match-string-no-properties 2] 9 (#$ . 269997)])
#@118 With point in middle of an AUTO_TEMPLATE, parse it.
Returns REGEXP and list of ( (signal_name connection_name)... ).
(defalias 'verilog-read-auto-template-middle #[0 "\212\302\303\304\305\211\211\211\306\307!\203\310\311!\262\304\225b\210\312\313!\210\314\315\316 `\"8\203,\312\313!\210\202\2044	\203[\212`eb\210\312\317\320#\203HT\262\2029`W\203Y\311y\210T\262\202H\210)\212\303u\210\321\311!\210\303u\210`)\262`W\203A\306\322!\203\226\310\311!\310\323!\212\304\225b\210\306\324!)\257B\262\304\225b\210\202j\306\325!\203\351\310\314!\262\304\225b\210\326\327\330\305\211\331\311!\304\332#\203\315\333$\262G\304\224G\\^\262\202\256\266\206\334Q\212\304\225b\210\306\324!)\257B\262\202j\306\335!\203\366\304\225b\210\202j\306\336!\203T\262\304\225b\210\202j\306\337!\203\312\336!\210T\262\202j\306\340!\2031\323u\210\312\341!\204j\342\343\344 `#\210\202j\342\345\344 \306\346!\210\331\304!#\210\202j\347D\"\266\207)\207" [verilog-auto-inst-template-numbers verilog-auto-template-warn-unused "\\([0-9]+\\)" -1 0 nil looking-at "\\s-*\"\\([^\"]*\\)\"" match-string-no-properties 1 search-forward "(" 3 parse-partial-sexp line-beginning-position "AUTO_TEMPLATE" t verilog-forward-sexp-cmt "\\s-*\\.\\([a-zA-Z0-9`_$]+\\)\\s-*(\\(.*\\))\\s-*\\(,\\|)\\s-*;\\)" 2 "[^\n]*AUTONOHOOKUP" "\\s-*\\.\\(\\([-a-zA-Z0-9`_$+@^.*?|]\\|[][]\\|\\\\[()|0-9]\\)+\\)\\s-*(\\(.*\\))\\s-*\\(,\\|)\\s-*;\\)" "^" "@" "\\\\([0-9]+\\\\)" match-string string-match replace-match "$" "[ 	\f]+" "\n" "//" "/\\*" "*/" error "%s: Unmatched /* */, at char %d" verilog-point-text "%s: AUTO_TEMPLATE parsing error: %s" ".*$" vector] 19 (#$ . 270540)])
#@147 Look for an auto_template for the instantiation of the given MODULE.
If found returns `verilog-read-auto-template-inside' structure.

(fn MODULE)
(defalias 'verilog-read-auto-template #[257 "\212`\300\301\302Q\303\304\303\211\2047\305#\2037\212\303\210\306\307 #\262)\310\224`X\2031\310\225`Y\204\n\303\262\202\n\211\203>\211b\210\266\204\204\207\211b\210\300\301\302Q\303\304\303\211\204{\311#\203{\212\312 \210\313\314 #\262)\310\224`X\203u\310\225`Y\204N\303\262\202N\211\203\202\211b\210\266\204\203\220\310\225b\210\315 \202\224\316\317\303\"\262)\207" ["AUTO_TEMPLATE" "^\\s-*/?\\*?\\s-*" "\\s-+AUTO_TEMPLATE" nil t search-backward re-search-backward line-beginning-position 0 search-forward beginning-of-line re-search-forward line-end-position verilog-read-auto-template-middle vector ""] 11 (#$ . 272241)])
#@59 Successful lookups with `verilog-read-auto-template-hit'.
(defvar verilog-auto-template-hits nil (#$ . 273096))
(make-variable-buffer-local 'verilog-auto-template-hits)
#@42 Initialize `verilog-read-auto-template'.
(defalias 'verilog-read-auto-template-init #[0 "\205\f\302\303\304\305\306$\211\207" [verilog-auto-template-warn-unused verilog-auto-template-hits make-hash-table :test equal :rehash-size 4.0] 5 (#$ . 273271)])
#@88 Record that TPL-ASS template from `verilog-read-auto-template' was used.

(fn TPL-ASS)
(defalias 'verilog-read-auto-template-hit #[257 "\205	\204\302 \210\303\304\3058\3068\"\307	#\207" [verilog-auto-template-warn-unused verilog-auto-template-hits verilog-read-auto-template-init puthash vector 2 3 t] 6 (#$ . 273532)])
#@179 Set the definition DEFNAME to the DEFVALUE in the given BUFFER.
Optionally associate it with the specified enumeration ENUMNAME.

(fn DEFNAME DEFVALUE &optional BUFFER ENUMNAME)
(defalias 'verilog-set-define #[1026 "r\206pq\210\300\301P!\302!\303\232\203\304\202L\266\211\205:\300\305P!\306!\2041\211\307L\210\310\302!\"\262)\207" [intern "vh-" make-local-variable "" "1" "venum-" boundp nil add-to-list] 8 (#$ . 273866)])
#@1973 Read \=`defines and parameters for the current file, or optional FILENAME.
If the filename is provided, `verilog-library-flags' will be used to
resolve it.  If optional RECURSE is non-nil, recurse through \=`includes.

Localparams must be simple assignments to constants, or have their own
"localparam" label rather than a list of localparams.  Thus:

    localparam X = 5, Y = 10;	// Ok
    localparam X = {1\='b1, 2\='h2};	// Ok
    localparam X = {1\='b1, 2\='h2}, Y = 10;	// Bad, make into 2 localparam lines

Defines must be simple text substitutions, one on a line, starting
at the beginning of the line.  Any ifdefs or multiline comments around the
define are ignored.

Defines are stored inside Emacs variables using the name
vh-{definename}.

Localparams define what symbols are constants so that AUTOSENSE
will not include them in sensitivity lists.  However any
parameters in the include file are not considered ports in the
including file, thus will not appear in AUTOINSTPARAM lists for a
parent module..

The file variables feature can be used to set defines that
`verilog-mode' can see; put at the *END* of your file something
like:

    // Local Variables:
    // vh-macro:"macro_definition"
    // End:

If macros are defined earlier in the same file and you want their values,
you can read them automatically with:

    // Local Variables:
    // verilog-auto-read-includes:t
    // End:

Or a more specific alternative example, which requires having
`enable-local-eval' non-nil:

    // Local Variables:
    // eval:(verilog-read-defines)
    // eval:(verilog-read-defines "group_standard_includes.v")
    // End:

Note these are only read when the file is first visited, you must use
\[find-alternate-file] RET  to have these take effect after editing them!

If you want to disable the "Process `eval' or hook local variables"
warning message, you need to add to your init file:

    (setq enable-local-eval t)

(fn &optional FILENAME RECURSE SUBCALL)
(defalias 'verilog-read-defines #[768 "p\212\204	\300 \210\203)\301\302 \"\211\203 \303@!q\266\202)\304\305\306 #\266\203Leb\210\307\310\311\312#\203L\313\314\315!!\316 \204H\317\312#\210\210\2020eb\210\307\320\311\312#\203\231\314\315!\314\321!\316\322\224!\204\224\323\324\311\211\322\325#\203\211\326$\262G\322\224G\\^\262\202j\266\206\262\327#\210\266\202Oeb\210\307\330\311\312#\205\345\311\331\332!\203\257\315\225b\210\331\333!\203\272\314\321!\262\334\335!\210\331\336!\203\341\316\322\224!\204\326\327\314\315!\314\321!$\210\322\225b\210\334\335!\210\202\276\210\202\234)\207" [verilog-getopt-flags verilog-library-filenames buffer-file-name find-file-noselect error "%s: Can't find verilog-read-defines file: %s" verilog-point-text re-search-forward "^\\s-*`include\\s-+\\([^ 	\n\f]+\\)" nil t verilog-substitute-include-name match-string-no-properties 1 verilog-inside-comment-or-string-p verilog-read-defines "^\\s-*`define\\s-+\\([a-zA-Z0-9_$]+\\)\\s-+\\(.*\\)$" 2 0 "\\s-*/[/*].*$" "" string-match replace-match verilog-set-define "^\\s-*\\(parameter\\|localparam\\)\\(\\s-*\\[[^]]*\\]\\)?\\s-*" looking-at "\\([a-zA-Z0-9_]+\\s-+\\)[a-zA-Z0-9_]+" "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)" forward-comment 99999 "\\s-*,?\\s-*\\(?:/[/*].*?$\\)?\\s-*\\([a-zA-Z0-9_$]+\\)\\s-*=\\s-*\\([^;,]*\\),?\\s-*\\(/[/*].*?$\\)?\\s-*"] 17 (#$ . 274317)])
#@1249 Read \=`includes for the current file.
This will find all of the \=`includes which are at the beginning of lines,
ignoring any ifdefs or multiline comments around them.
`verilog-read-defines' is then performed on the current and each included
file.

It is often useful put at the *END* of your file something like:

    // Local Variables:
    // verilog-auto-read-includes:t
    // End:

Or the equivalent longer version, which requires having
`enable-local-eval' non-nil:

    // Local Variables:
    // eval:(verilog-read-defines)
    // eval:(verilog-read-includes)
    // End:

Note includes are only read when the file is first visited, you must use
\[find-alternate-file] RET  to have these take effect after editing them!

It is good to get in the habit of including all needed files in each .v
file that needs it, rather than waiting for compile time.  This will aid
this process, Verilint, and readability.  To prevent defining the same
variable over and over when many modules are compiled together, put a test
around the inside each include file:

foo.v (an include file):
        \=`ifdef _FOO_V        // include if not already included
        \=`else
        \=`define _FOO_V
        ... contents of file
        \=`endif // _FOO_V
(defalias 'verilog-read-includes #[0 "\212\300 \210eb\210\301\302\303\304#\205\305\306\307!!\310\303\304#\266\202)\207" [verilog-getopt-flags re-search-forward "^\\s-*`include\\s-+\\([^ 	\n\f]+\\)" nil t verilog-substitute-include-name match-string-no-properties 1 verilog-read-defines] 5 (#$ . 277726)])
#@229 Return a simple list of all possible signals in the file.
Bounded by optional region from START to END.  Overly aggressive but fast.
Some macros and such are also found and included.  For dinotrace.el.

(fn &optional START END)
(defalias 'verilog-read-signals #[512 "\301\211\206eb\210\206d\262\302\303\304#\203~\305u\210\306\307!\203(\310\311!\210\202\306\312!\2035\310\313!\210\202\306\314!\203H\306\315!\204\310\316!\210\202g\317=\203U\302\320!\210\202\306\321!\203x\322\225b\210\323\324!\262\211\235\204\211\235\204\211B\262\202\324u\210\202\207" [verilog-keywords nil re-search-forward "[\"/a-zA-Z_.%`]" t -1 looking-at "//" search-forward "\n" "/\\*" "*/" "(\\*" "(\\*\\s-*)" "*)" 34 "[^\\]\"" "\\s-*\\([a-zA-Z0-9$_.%`]+\\)" 0 match-string-no-properties 1] 8 (#$ . 279292)])
#@135 Parse -f, -v etc arguments in ARGLIST list or string.
Use DEFAULT-DIR to anchor paths if non-nil.

(fn ARGLIST &optional DEFAULT-DIR)
(defalias 'verilog-getopt #[513 "<\204	C\262\300\211\211\2035@\262A\262\301\302\"\203\f\303\304\305\"C\"\262\306\307\"\262\202\202\f\2055@\262A\262\310\267\202_\262\2025\262\2025\262\2025\262\2025\301\311\"\203\207\306\305\"\262\301\312\"\2035\313\314\306\305\"\"\210\306\307\"\262\202l\2025\301\315\"\204\243\301\316\"\204\243\301\317\"\204\243\301\320\"\203\261\321\306\305\"\306\307\"\"\210\2025\301\322\"\204\277\301\323\"\203\315\313\324\325\306\305\"!\"\210\2025\326\232\2045\301\327\"\2045\211\330\267\202\"\300\262\331\332\"\333\332\"!\"\210\2025\300\262\331\332\"\300\"\210\2025\300\262\313\334\332\"\"\210\2025\300\262\313\324\332\"\"\210\2025\301\335\"\2035\313\334\332\"\"\210\2025\207" [nil string-match "^\\([^ 	\n\f]+\\)[ 	\n\f]*\\(.*$\\)" append match-string-no-properties 1 match-string 2 #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("-F" 71 "-f" 77 "-v" 83 "-y" 89)) "^\\+libext\\+\\(.*\\)" "\\([^+]+\\)\\+?\\(.*\\)" verilog-add-list-unique verilog-library-extensions "^-D\\([^+=]*\\)[+=]\\(.*\\)" "^-D\\([^+=]*\\)\\(\\)" "^\\+define\\([^+=]*\\)[+=]\\(.*\\)" "^\\+define\\([^+=]*\\)\\(\\)" verilog-set-define "^\\+incdir\\+\\(.*\\)" "^-I\\(.*\\)" verilog-library-directories substitute-in-file-name "+librescan" "^-U\\(.*\\)" #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("-F" 224 "-f" 245 "-v" 260 "-y" 275)) verilog-getopt-file verilog-substitute-file-name-path file-name-directory verilog-library-files "^[^-+]"] 11 (#$ . 280118)])
#@132 Read Verilog options from the specified FILENAME.
Use DEFAULT-DIR to anchor paths if non-nil.

(fn FILENAME &optional DEFAULT-DIR)
(defalias 'verilog-getopt-file #[513 "\212\300\301 \"p\302\203\303@!q\210\202\304\305\306 #\210eb\210m?\205I`\307 {\262\310y\210\311\312\"\203<\211\313\211\224O\262rq\210\314\"\210)\202 \266\203)\207" [verilog-library-filenames buffer-file-name nil find-file-noselect error "%s: Can't find verilog-getopt-file -f file: %s" verilog-point-text line-end-position 1 string-match "//" 0 verilog-getopt] 9 (#$ . 281902)])
#@66 Convert `verilog-library-flags' into standard library variables.
(defalias 'verilog-getopt-flags #[0 "\302\301p\"\203\f\303\304\305\"\210\306\307\310!\210)\311	!\210\306\307\312!)\207" [verilog-in-hooks verilog-library-flags local-variable-p mapc make-local-variable (verilog-library-extensions verilog-library-directories verilog-library-files verilog-library-flags) t run-hooks verilog-before-getopt-flags-hook verilog-getopt verilog-getopt-flags-hook] 3 (#$ . 282473)])
#@128 Return FILENAME with environment variables substituted.
Use DEFAULT-DIR to anchor paths if non-nil.

(fn FILENAME DEFAULT-DIR)
(defalias 'verilog-substitute-file-name-path #[514 "\211\203\300\301!\"\207\301!\207" [expand-file-name substitute-in-file-name] 5 (#$ . 282956)])
#@69 Return FILENAME for include with define substituted.

(fn FILENAME)
(defalias 'verilog-substitute-include-name #[257 "\300\301\302\211\303\304#\203%\305$\262G\303\224G\\^\262\202\266\206\262\300\301\302\211\306\307\"\303\304#\203R\305$\262G\303\224G\\^\262\2023\207" ["\"" "" nil 0 string-match replace-match verilog-symbol-detick t] 12 (#$ . 283241)])
#@115 Append to VARREF list the given OBJECT,
unless it is already a member of the variable's list.

(fn VARREF OBJECT)
(defalias 'verilog-add-list-unique #[514 "\211J\235\204\300JC\"L\210\207" [append] 6 (#$ . 283637)])
#@120 Convert `verilog-library-flags' and similar variables to command line.
Used for __FLAGS__ in `verilog-expand-command'.
(defalias 'verilog-current-flags #[0 "\304\305\306#\211\307\232\203\310\304\305	\311#\304\312\n\307#\304\313\307#R\262\207" [verilog-library-flags verilog-library-extensions verilog-library-directories verilog-library-files mapconcat concat " " "" "+libext+" "+" #[257 "\300\301R\207" [" -y " " +incdir+"] 5 "\n\n(fn I)"] #[257 "\300P\207" [" -v "] 3 "\n\n(fn I)"]] 8 (#$ . 283866)])
#@131 If true, the directory cache is enabled, and file system changes are ignored.
See `verilog-dir-exists-p' and `verilog-dir-files'.
(defvar verilog-dir-cache-preserving nil (#$ . 284384))
#@72 Alist of (((Cwd Dirname) Results)...) for caching `verilog-dir-files'.
(defvar verilog-dir-cache-list nil (#$ . 284576))
#@46 Cached data for `verilog-library-filenames'.
(defvar verilog-dir-cache-lib-filenames nil (#$ . 284703))
#@220 Execute the BODY forms, allowing directory cache preservation within BODY.
This means that changes inside BODY made to the file system will not be
seen by the `verilog-dir-files' and related functions.

(fn &rest BODY)
(defalias 'verilog-preserve-dir-cache '(macro . #[128 "\300\301\302BE\207" [let ((verilog-dir-cache-preserving (current-buffer)) verilog-dir-cache-list verilog-dir-cache-lib-filenames) progn] 5 (#$ . 284814)]))
#@171 Return all filenames in the DIRNAME directory.
Relative paths depend on the `default-directory'.
Results are cached if inside `verilog-preserve-dir-cache'.

(fn DIRNAME)
(defalias 'verilog-dir-files #[257 "\204\303\211\nD\304	\"\303\211\203A@\207\305!\262\306!\205(\307\303\211\211$\262D	B\207" [verilog-dir-cache-preserving verilog-dir-cache-list default-directory nil assoc expand-file-name file-directory-p directory-files] 10 (#$ . 285252)])
#@132 Return true if FILENAME exists.
Like `file-exists-p' but results are cached if inside
`verilog-preserve-dir-cache'.

(fn FILENAME)
(defalias 'verilog-dir-file-exists-p #[257 "\301!\211\203
\211\232\203\202\211\302!\211\205\"\303!\235\205\"\304\207" [default-directory file-name-directory verilog-dir-files file-name-nondirectory t] 6 (#$ . 285723)])
#@142 Return modi if MODULE is specified inside FILENAME, else nil.
Allows version control to check out the file if need be.

(fn MODULE FILENAME)
(defalias 'verilog-module-inside-filename-p #[514 "\300!\204\301\302!\205\233\302!\205\233\303\211r\304!q\210\212eb\210\305\303\306\303\211\204E\307#\203E\310\311\224!\203>\307\312\303\306#\210\202\"\311\225\262\202\"\266\203\203\227\313\311!\211\262\203\227\314\303\306\303\211\204z\307#\203z\310\311\224!\203s\307\312\303\306#\210\202W\311\225\262\202W\266\203\203\227\315 \232\203`\316$\266\204\262\202*\266\202\207" [file-exists-p fboundp vc-backend nil find-file-noselect "\\<\\(connectmodule\\|module\\|interface\\|program\\)\\>" t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" match-string-no-properties "[(;]" verilog-read-module-name vector] 13 (#$ . 286093)])
#@52 Return true if SYMBOL is number-like.

(fn SYMBOL)
(defalias 'verilog-is-number #[257 "\300\301\"\206\300\302\"\206\300\303\"\207" [string-match "^[0-9 	:]+$" "^[---]*[0-9]+$" "^[0-9 	]+'s?[hdxbo][0-9a-fA-F_xz? 	]*$"] 4 (#$ . 286972)])
#@207 Return an expanded SYMBOL name without any defines.
If the variable vh-{symbol} is defined, return that value.
If undefined, and WING-IT, return just SYMBOL without the tick, else nil.

(fn SYMBOL WING-IT)
(defalias 'verilog-symbol-detick #[514 "\203=\300\301\"\203=\302\303O\262\304\305\306P!!\2033\305\306P!J\211\204-\205.\202.\211\262\2028\211\2058\262\202\207" [string-match "^`" 1 nil boundp intern "vh-"] 6 (#$ . 287222)])
#@83 Return SYMBOL with defines converted and any numbers dropped to nil.

(fn SYMBOL)
(defalias 'verilog-symbol-detick-denumber #[257 "\301\302\"\203@\303\304\305\211\306\305\"\206\203\307\202\310\301#\203;\311$\262G\310\224G\\^\262\202\266\206\262\312!?\205H\211\207" [verilog-auto-sense-defines-constant string-match "^`" "\\[[^0-9: 	]+\\]" "" nil verilog-symbol-detick "0" 0 replace-match verilog-is-number] 12 (#$ . 287679)])
#@183 Return TEXT without any known defines.
If the variable vh-{symbol} is defined, substitute that value.
This function is intended for use in AUTO_TEMPLATE Lisp expressions.

(fn TEXT)
(defalias 'verilog-symbol-detick-text #[257 "\300\301\211\203<\302\303\"\203<\304\305\"\262\306\307\310P!!\2036\307\310P!J\211\262\2036\311\301\211$\262\202\301\262\202\266\207" [t nil string-match "`\\([a-zA-Z0-9_]+\\)" match-string 1 boundp intern "vh-" replace-match] 9 (#$ . 288143)])
#@170 Return a list of existing directories given a list of wildcarded DIRNAMES.
Or, just the existing dirnames themselves if there are no wildcards.

(fn &optional DIRNAMES)
(defalias 'verilog-expand-dirnames #[256 "\211\204\300\301!\210\302 \303\304\"\216\305!\262\306\211\211\211\211\211\211\211\211\307\310\f\"\262\n\203\366\n@\262\nA\262\311\312\"\203\347\313\314\"\262\313\315\"\262\313\316\"\262\262\317\320\306\211\321\311#\203y\322$\262G\321\224G\\^\262\202Z\266\206\262\323\324\306\211\321\311#\203\244\322$\262G\321\224G\\^\262\202\205\266\206\262\325\326Q\262\327!\262\203$@\262\330Q!\262A\262\311\"\203\265\211\324\232\204\265\211\331\232\204\265B\262\202\265\332!\203$	B\262	\202$\266\211)\207" [error "`verilog-library-directories' should include at least `.'" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] reverse nil mapcar substitute-in-file-name string-match "^\\(\\|[^*?]*[/\\]\\)\\([^/\\]*[*?][^/\\]*\\)\\(.*\\)" match-string 1 2 3 "[*]" ".+" 0 replace-match "[?]" "." "^" "$" verilog-dir-files expand-file-name ".." file-directory-p] 22 (#$ . 288642) nil])
#@338 Return a search path to find the given FILENAME or module name.
Uses the optional CURRENT filename or variable `buffer-file-name', plus
`verilog-library-directories' and `verilog-library-extensions'
variables to build the path.  With optional CHECK-EXT also check
`verilog-library-extensions'.

(fn FILENAME &optional CURRENT CHECK-EXT)
(defalias 'verilog-library-filenames #[769 "\204\304 \262\204\305E\306	\"\305\211\211\211\211\203#A@\207\307\n!\262\203o\310@\311!\"\262\203?\202@\312\262\203h\310\n@P\"\262\313!\203a\310\311!\"B\262A\262\202BA\262\202(\211\237\262D	B\207" [verilog-dir-cache-preserving verilog-dir-cache-lib-filenames verilog-library-directories verilog-library-extensions buffer-file-name nil assoc verilog-expand-dirnames expand-file-name file-name-directory ("") verilog-dir-file-exists-p] 14 (#$ . 289857)])
#@218 Return a search path to find the given MODULE name.
Uses the CURRENT filename, `verilog-library-extensions',
`verilog-library-directories' and `verilog-library-files'
variables to build the path.

(fn MODULE CURRENT)
(defalias 'verilog-module-filenames #[514 "\301C\302\303#\304\305\306\"\"#\207" [verilog-library-files append verilog-library-filenames t mapcar make-closure #[257 "\301!\203\f\302\300!P\207\207" [V0 file-name-absolute-p file-remote-p] 3 "\n\n(fn FNAME)"]] 9 (#$ . 290749)])
#@88 Non-nil enables caching of signals, etc.
Set to nil for debugging to make things SLOW!
(defvar verilog-cache-enabled t (#$ . 291256))
#@126 Cache of ((Module Function) Buf-Tick Buf-Modtime Func-Returns)...
For speeding up verilog-modi-get-* commands.
Buffer-local.
(defvar verilog-modi-cache-list nil (#$ . 291397))
(make-variable-buffer-local 'verilog-modi-cache-list)
#@113 Modification tick after which the cache is still considered valid.
Use `verilog-preserve-modi-cache' to set it.
(defvar verilog-modi-cache-preserve-tick nil (#$ . 291634))
#@113 Modification tick after which the cache is still considered valid.
Use `verilog-preserve-modi-cache' to set it.
(defvar verilog-modi-cache-preserve-buffer nil (#$ . 291813))
#@67 Non-nil means allow caching `verilog-modi-current', set by let().
(defvar verilog-modi-cache-current-enable nil (#$ . 291993))
#@64 Currently active `verilog-modi-current', if any, set by let().
(defvar verilog-modi-cache-current nil (#$ . 292126))
#@67 Current endmodule point for `verilog-modi-cache-current', if any.
(defvar verilog-modi-cache-current-max nil (#$ . 292249))
#@79 Return the modi structure for the module currently at point, possibly cached.
(defalias 'verilog-modi-current #[0 "\203`\211\304H\262Y\203`	X\203\207\n\203L\305 \212\306\211\211\211\204F\307#\203F\310\311\224!\203?\307\312\306\313#\210\202#\311\225\262\202#\266\203)\207\305 \207" [verilog-modi-cache-current verilog-modi-cache-current-max verilog-modi-cache-current-enable verilog-end-defun-re 2 verilog-modi-current-get nil re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" t] 8 (#$ . 292379)])
#@62 Return the modi structure for the module currently at point.
(defalias 'verilog-modi-current-get #[0 "\301\211\211\212\301\211\211\211\204+\302#\203+\303\304\224!\203$\302\305\301\306#\210\202\304\224\262\202\266\307\304!\262\310\301\211\211\211\204Y\311#\203Y\303\304\224!\203R\311\312\301\306#\210\2026\304\225\262\2026\266\313 \262`\262)\314 \206jp\315$\207" [verilog-defun-re nil re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t match-string-no-properties "(" re-search-forward "[/\"\n]" verilog-read-module-name buffer-file-name vector] 12 (#$ . 292921)])
#@28 Hash of (modulename modi).
(defvar verilog-modi-lookup-cache nil (#$ . 293539))
(make-variable-buffer-local 'verilog-modi-lookup-cache)
#@43 Cache of `current-buffer' at last lookup.
(defvar verilog-modi-lookup-last-current nil (#$ . 293681))
#@55 Cache of `buffer-chars-modified-tick' at last lookup.
(defvar verilog-modi-lookup-last-tick nil (#$ . 293789))
#@245 Find the file and point at which MODULE is defined.
If ALLOW-CACHE is set, check and remember cache of previous lookups.
Return modi if successful, else print message unless IGNORE-ERROR is true.

(fn MODULE ALLOW-CACHE &optional IGNORE-ERROR)
(defalias 'verilog-modi-lookup #[770 "\304 \206p\305\2035	\2035\2035\306\"\211\262\2035\n\232\2035\307 \232\204\235\211\310H\262\232\203\235\311\312\"\313\"\211\305\203Y\211\204Y\314@\"\211\262\204?A\262\202?\211\262\211\204\203\204\203\315\316\317 \211\232\204z\320\321Q\202{\322\323\324	\325#%\210\204\216\326\327\330\331\332$\333	#\210\307 \266\207" [verilog-modi-lookup-cache verilog-cache-enabled verilog-modi-lookup-last-current verilog-modi-lookup-last-tick buffer-file-name nil gethash buffer-chars-modified-tick 1 verilog-symbol-detick t verilog-module-filenames verilog-module-inside-filename-p error "%s: Can't locate `%s' module definition%s\n    Check the verilog-library-directories variable.\n    I looked in (if not listed, doesn't exist):\n	%s" verilog-point-text " (Expanded macro to " ")" "" mapconcat concat "\n	" make-hash-table :test equal :rehash-size 4.0 puthash] 18 (#$ . 293907)])
#@74 Filename of MODI, or name of buffer if it's never been saved.

(fn MODI)
(defalias 'verilog-modi-filename #[257 "\300\211\301H\262!\203\302\211\301H\262!\206%\303\211\301H\262!\207\211\211\301H\262\207" [bufferp 1 buffer-file-name buffer-name] 5 (#$ . 295121)])
#@49 Move point/buffer to specified MODI.

(fn MODI)
(defalias 'verilog-modi-goto #[257 "\211\204\301\302!\210\303\211\304H\262!\203\211\211\304H\262\202$\305\211\304H\262!q\210\306=\204/\306 \210\211\211\307H\262b\207" [major-mode error "Passed unfound modi to goto, check earlier" bufferp 1 find-file-noselect verilog-mode 2] 5 (#$ . 295399)])
#@73 Move point to the file at which a given MODULE is defined.

(fn MODULE)
(defalias 'verilog-goto-defun-file #[257 "\300\301\"\211\205\302!\210\303p!\207" [verilog-modi-lookup nil verilog-modi-goto switch-to-buffer] 4 (#$ . 295759) "sGoto File for Module: "])
#@149 Run on MODI the given FUNCTION.  Locate the module in a file.
Cache the output of function so next call may have faster access.

(fn MODI FUNCTION)
(defalias 'verilog-modi-cache-results #[514 "\306\212\307!\210\310D\"\211\262\203?	\203:\311 A@\232\2041\n\203:\nA@X\203:p\232\203:\312 \3138\232\204?\306\211\262\211\203I\3148\202\226\f\203R \202\207\315\316\317!\210)deZ\205g\320\321!\210\315\322\323ed#\210\324\325\"\216\315\211\315\306\211 .\262D\311 \312 FB\211\262)\207" [verilog-modi-cache-list verilog-cache-enabled verilog-modi-cache-preserve-tick verilog-modi-cache-preserve-buffer verilog-save-font-mod-hooked verilog-in-hooks nil verilog-modi-goto assoc buffer-chars-modified-tick visited-file-modtime 2 3 t run-hooks verilog-before-save-font-hook font-lock-mode 0 run-hook-with-args before-change-functions make-closure #[0 "\303\304ed	$\210\300\203\305\306!\210\306\307\310!)\207" [V0 verilog-save-font-mod-hooked verilog-in-hooks run-hook-with-args after-change-functions font-lock-mode t run-hooks verilog-after-save-font-hook] 5] inhibit-point-motion-hooks inhibit-modification-hooks verilog-no-change-functions after-change-functions] 9 (#$ . 296028)])
#@219 Add function return results to the module cache.
Update MODI's cache for given FUNCTION so that the return ELEMENT of that
function now contains the additional SIG-LIST parameters.

(fn MODI FUNCTION ELEMENT SIG-LIST)
(defalias 'verilog-modi-cache-add #[1028 "\301\212\302!\210\303D\"\211\262\205!\3048\211\305H\"I\262)\207" [verilog-modi-cache-list nil verilog-modi-goto assoc 3 append] 12 (#$ . 297255)])
#@397 Execute the BODY forms, allowing cache preservation within BODY.
This means that changes to the buffer will not result in the cache being
flushed.  If the changes affect the modsig state, they must call the
modsig-cache-add-* function, else the results of later calls may be
incorrect.  Without this, changes are assumed to be adding/removing signals
and invalidating the cache.

(fn &rest BODY)
(defalias 'verilog-preserve-modi-cache '(macro . #[128 "\300\301\302BE\207" [let ((verilog-modi-cache-preserve-tick (buffer-chars-modified-tick)) (verilog-modi-cache-preserve-buffer (current-buffer))) progn] 5 (#$ . 297682)]))
#@157 Given a MODI, return the declarations related to the given modport NAME.
Report errors unless optional IGNORE-ERROR.

(fn MODI NAME &optional IGNORE-ERROR)
(defalias 'verilog-modi-modport-lookup-one #[770 "\300\301\"\302\303\304\"\262\211\305H\262\"\211\2043\2043\306\307\310 \211\232\2040\311\312Q\2021\313$\210\211\3148\262\211A@\262\211\203\301\315@#\204U\262\202\270\211\204_\266\202\202\270\316\317\320H\320H\"\317\321H\321H\"\317\314H\314H\"\317\322H\322H\"\317\305H\305H\"\317\323H\323H\"\317	\324H	\324H\"\317\n\325H\n\325H\"\317\326H\326H\"&	\266\202\262\211A\262\202?\207" [verilog-symbol-detick t assoc verilog-modi-cache-results verilog-read-decls 4 error "%s: Can't locate `%s' modport definition%s" verilog-point-text " (Expanded macro to " ")" "" 2 verilog-modi-modport-lookup-one vector append 0 1 3 5 6 7 8] 22 (#$ . 298313)])
#@227 Given a MODI, return the declarations related to the given modport NAME-RE.
If the modport points to any clocking blocks, expand the signals to include
those clocking block's signals.

(fn MODI NAME-RE &optional IGNORE-ERROR)
(defalias 'verilog-modi-modport-lookup #[770 "\300\301\"\262\211\211\302H\262\303\304Q\305\211\211\211\211\211\211\211\211\306									&	\266\211\203\303\307@\211@\262\"\203\274\211\310@\211@\262#\204W\262\202\272\211\204a\266\202\202\272\306\311\312H\312H\"\311\313H\313H\"\311\314H\314H\"\311\315H\315H\"\311\302H\302H\"\311\316H\316H\"\311	\317H	\317H\"\311\n\320H\n\320H\"\311\321H\321H\"&	\266\202\262A\262\2021\207" [verilog-modi-cache-results verilog-read-decls 4 "^" "$" nil vector string-match verilog-modi-modport-lookup-one append 0 1 2 3 5 6 7 8] 25 (#$ . 299229)])
#@75 Return all signals in IN-LIST matching the given ENUM.

(fn IN-LIST ENUM)
(defalias 'verilog-signals-matching-enum #[514 "\300\211\203\211@\211\3018\262\232\203\211B\262A\266\202\202\210\302\303P!\304!\205-\211J\211\203H\211@\211C\211\235\204@\211B\262\210A\266\202\202-\266\211\237\207" [nil 4 intern "venum-" boundp] 9 (#$ . 300102)])
#@140 Return all signals in IN-LIST matching the given REGEXP, if non-nil.
Allow regexp inversion if REGEXP begins with ?!.

(fn IN-LIST REGEXP)
(defalias 'verilog-signals-matching-regexp #[514 "\211\203\n\211\302\232\203\f\207\303\304\"\203\305\306\307O\"\207\307\203<\303@\211@\262\"\2035@B\262A\262\202\211\237)\207" [verilog-case-fold case-fold-search "" string-match "^\\?!" verilog-signals-not-matching-regexp 2 nil] 8 (#$ . 300470)])
#@144 Return all signals in IN-LIST not matching the given REGEXP, if non-nil.
Allow regexp inversion if REGEXP begins with ?!.

(fn IN-LIST REGEXP)
(defalias 'verilog-signals-not-matching-regexp #[514 "\211\203\n\211\302\232\203\f\207\303\304\"\203\305\306\307O\"\207\307\203<\303@\211@\262\"\2045@B\262A\262\202\211\237)\207" [verilog-case-fold case-fold-search "" string-match "^\\?!" verilog-signals-matching-regexp 2 nil] 8 (#$ . 300936)])
#@115 Return all signals in IN-LIST matching the given DECL-TYPE and REGEXP,
if non-nil.

(fn IN-LIST DECL-TYPE REGEXP)
(defalias 'verilog-signals-matching-dir-re #[771 "\211\203\n\211\300\232\203\f\207\301\211\203f\302@\3038\262\302@\211\3048\262\205D\300\3048\262\211\203A\211@P\262\211A\262\2020\266\202\262	@\211A@\262\260\262\305\"\203_@B\262A\262\202\237\207" ["" nil " " 5 7 string-match] 14 (#$ . 301406)])
#@82 Return all signals in IN-LIST with wire/reg data types made blank.

(fn IN-LIST)
(defalias 'verilog-signals-edit-wire-reg #[257 "\300\301\"\207" [mapcar #[257 "\211\3008\262\301\235\203\211\302\300\233\240\266\207" [6 ("wire" "reg") nil] 5 "\n\n(fn SIG)"]] 4 (#$ . 301861)])
#@71 Return all signals in IN-LIST with PREFIX added.

(fn IN-LIST PREFIX)
(defalias 'verilog-signals-add-prefix #[514 "\211\203\n\211\300\232\203\f\207\301\203,@\211@\262P@AB\266\202B\262A\262\202
\211\237\207" ["" nil] 7 (#$ . 302150)])
#@82 Return all declared signals in DECLS, excluding `assign' statements.

(fn DECLS)
(defalias 'verilog-decls-get-signals #[257 "\300\211\301H\262\211\302H\262\211\303H\262\211\304H\262\211\305H\262\211\306H\262&\207" [append 0 1 2 3 6 7] 10 (#$ . 302406)])
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-ports #[257 "\300\211\301H\262\211\302H\262\211\303H\262#\207" [append 0 1 2] 7 (#$ . 302680)])
#@14 

(fn DECLS)
(defalias 'verilog-decls-get-iovars #[257 "\300\211\301H\262\211\302H\262\211\303H\262\211\304H\262$\207" [append 3 0 1 2] 8 (#$ . 302830)])
#@22 

(fn MODI SIG-LIST)
(defalias 'verilog-modi-cache-add-outputs #[514 "\300\301\302$\207" [verilog-modi-cache-add verilog-read-decls 0] 7 (#$ . 302998)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-cache-add-outputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@22 

(fn MODI SIG-LIST)
(defalias 'verilog-modi-cache-add-inouts #[514 "\300\301\302$\207" [verilog-modi-cache-add verilog-read-decls 1] 7 (#$ . 303315)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-cache-add-inouts speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@22 

(fn MODI SIG-LIST)
(defalias 'verilog-modi-cache-add-inputs #[514 "\300\301\302$\207" [verilog-modi-cache-add verilog-read-decls 2] 7 (#$ . 303630)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-cache-add-inputs speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@22 

(fn MODI SIG-LIST)
(defalias 'verilog-modi-cache-add-vars #[514 "\300\301\302$\207" [verilog-modi-cache-add verilog-read-decls 3] 7 (#$ . 303945)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-cache-add-vars speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@22 

(fn MODI SIG-LIST)
(defalias 'verilog-modi-cache-add-gparams #[514 "\300\301\302$\207" [verilog-modi-cache-add verilog-read-decls 7] 7 (#$ . 304256)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put verilog-modi-cache-add-gparams speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@98 Given start brace BRA, and end brace KET, expand one line into many lines.

(fn SEARCH-FOR FUNC)
(defalias 'verilog-auto-re-search-do #[514 "eb\210\300\301\300\211\204*\302#\203*\303\304\224!\203#\302\305\300\301#\210\202\304\225\262\202\266\203\2055\211 \210\202\207" [nil t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]"] 10 (#$ . 304573)])
#@116 Print out a definition for SIG of the given TYPE,
with appropriate INDENT-PT indentation.

(fn SIG TYPE INDENT-PT)
(defalias 'verilog-insert-one-definition #[771 "\211j\210c\210\3008\262\203\301\3008\262\261\210\3028\262\203,\303\3028\262\261\210\3048\262\203`\303\211\3048\262\205[\305\3048\262\211\203X\211@P\262\211A\262\202G\266\202\262\261\210\211A@\262\203s\303\211A@\262\261\210\306\307\\]j\210hz\310U\204\204\303c\210\211@\262c\210\3118\262\205\235\303\3118\262\261\207" [8 "." 5 " " 7 "" 24 16 32 3] 9 (#$ . 304956)])
#@335 Print out a definition for MODI's list of SIGS of the given DIRECTION,
with appropriate INDENT-PT indentation.  If V2K, use Verilog 2001 I/O
format.  Sort unless DONT-SORT.  DIRECTION is normally wire/reg/output.
When MODI is non-null, also add to modi-cache, for tracking.

(fn MODI SIGS DIRECTION INDENT-PT V2K &optional DONT-SORT)
(defalias 'verilog-insert-definition #[1541 "\203\212\303\267\202\205\304\305\306$\266\202\212\304\305\306$\266\202\212\304\305\307$\266\203\212\304\305\306$\266\202\212\304\305\310$\266\203\212\304\305\306$\266\202\212\304\305\311$\266\203\212\304\305\306$\266\202\212\202\212\304\305\312$\266\202\212\313\314\"\210\211\204\227\315\316!\317\"\262\205K@\320	\321\232\203\311\3228\262\203\271\3228\262\323\232\203\311\324\235\203\305\202\321\202\3228\262\204\326	\203\357\325\235\205\341\326P\3228\262\206\353	P\202\203\327\235\203\326Q\202#\210\203\330\202\331c\210\n\203+\211\3108\262\203+\211\3108\262\332\232\2031\333c\210\202C\334\335\\]j\210\336\337\3108\262\333#\210A\262\210\202\227\207" [verilog-auto-declare-nettype verilog-auto-wire-type verilog-auto-wire-comment #s(hash-table size 7 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("wire" 10 "reg" 23 "output" 36 "input" 63 "inout" 90 "interface" 117 "parameter" 120)) verilog-modi-cache-add verilog-read-decls 3 0 2 1 7 error "Unsupported verilog-insert-definition direction: `%s'" sort copy-alist verilog-signals-sort-compare verilog-insert-one-definition "wire" 6 "logic" ("input" "output" "inout") ("input" "output" "inout") " " ("input" "output" "inout") "," ";" "" "\n" 48 40 verilog-insert "// "] 13 (#$ . 305545)])
#@152 Indent to position stored in local `indent-pt' variable, then insert STUFF.
Presumes that any newlines end a list element.

(fn INDENT-PT &rest STUFF)
(defalias 'verilog--insert-indent #[385 "\300\205\"\211\203\fj\210\301\262\302@!\210\303\304@\"\262A\262\202\207" [t nil verilog-insert string-match "\n$"] 6 (#$ . 307331)])
#@20 

(fn &rest STUFF)
(defalias 'verilog-insert-indent '(macro . #[128 "\300\301BB\207" [verilog--insert-indent indent-pt] 4 (#$ . 307674)]))
#@60 Move forward a line, unless at EOB, then insert a newline.
(defalias 'verilog-forward-or-insert-line #[0 "m\203\300c\207\301y\207" ["\n" nil] 1 (#$ . 307820)])
#@79 Insert comma if previous argument is other than an open parenthesis or endif.
(defalias 'verilog-repair-open-comma #[0 "\212\300 \210\212\301u\210\302\303!)?\205\"\212\301u\210\304\305x\210\302\306!)?\205\"\307c)\207" [verilog-backward-syntactic-ws-quick -1 looking-at "[(,]" "a-zA-Z0-9_`" nil "`" ","] 2 (#$ . 307988)])
#@112 If point is at a comma followed by a close parenthesis, fix it.
This repairs those mis-inserted by an AUTOARG.
(defalias 'verilog-repair-close-comma #[0 "\212\300 \210\301u\210\302 \210\301u\210\303\304!\205\305\306!)\207" [verilog-forward-close-paren -1 verilog-backward-syntactic-ws-quick looking-at "," delete-char 1] 2 (#$ . 308318)])
#@92 Return an expression calculating the length of a range [x:y] in RANGE-EXP.

(fn RANGE-EXP)
(defalias 'verilog-make-width-expression #[257 "\211\204\300\207\301\302\"\203\303\304\"\262\211\204\300\207\301\305\"\2034\306\307\310\303\304\"!\310\303\311\"!Z!T!\207\301\312\"\203@\303\304\"\207\301\313\"\203f\314\303\304\"\315\303\311\"\316\232\203Z\317\202b\320\303\311\"\315Q\315\260\207\321\207" ["1" string-match "^\\[\\(.*\\)\\]$" match-string 1 "^\\s *\\([0-9]+\\)\\s *:\\s *\\([0-9]+\\)\\s *$" int-to-string abs string-to-number 2 "^\\s *\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\s *-\\s *1\\s *:\\s *0\\s *$" "^\\(.*\\)\\s *:\\s *\\(.*\\)\\s *$" "(1+(" ")" "0" "" "-(" nil] 8 (#$ . 308665)])
#@86 Return a simplified range expression with constants eliminated from EXPR.

(fn EXPR)
(defalias 'verilog-simplify-range-expression #[257 "\203\301\302\"\204\f\207\211\303\211\232\204\257\211\232\204\262\301\304\"\203/\305\306\307\211$\262\202\301\310\"\203U\305\311\312\"\313\314\315\311\316\"!!!\311\317\"Q\307\211$\262\202/\301\320\"\203\300\311\317\"\321\232\203w\315\311\316\"!\315\311\322\"!\246\323=\203\300\305\311\312\"\311\317\"\321\232\205\226\313\315\311\316\"!\315\311\322\"!\245!\311\317\"\324\232\205\261\313\315\311\316\"!\315\311\322	\"!_!\311\325\"R\307\211$\262\202U\301\326\"\203 \311\312\"\315\311\316\"!\315\311\322\"!\311\325\"\307\327\232\203\350[\262\311\317\"\327\232\203\370Z\202\373\\\262\305\327\232\203\323W\203\303\202\313!Q\307\211\n$\262\266\202\300\301\330\"\203\305\311\312\"\311\317\"\331\232\205I\313\332\315\311\316\"!\333\315\311\322\n\"!_\"!\311\317\"\334\232\205e\313\332\315\311\316	\"!\315\311\322\n\"!\"!\311\317\"\335\232\205\203\313\336\315\311\316\n\"!\333\315\311\322\f\"!_\"!\311\317\"\337\232\205\237\313\336\315\311\316\"!\315\311\322\f\"!\"!\311\325	\"\260\307\211$\262\202 \207" [verilog-auto-simplify-expressions string-match "[---+*/<>()]" "" "\\([[({:*/<>+-]\\)(\\<\\([0-9A-Za-z_]+\\))\\([])}:*/<>+-]\\)" replace-match "\\1\\2\\3" nil "\\([[({:*/<>+-]\\)\\$clog2\\s *(\\<\\([0-9]+\\))\\([])}:*/<>+-]\\)" match-string 1 int-to-string verilog-clog2 string-to-number 2 3 "\\([[({:*/<>+-]\\)\\([0-9]+\\)\\s *\\([*/]\\)\\s *\\([0-9]+\\)\\([])}:*/<>+-]\\)" "/" 4 0 "*" 5 "\\([[({:<>+-]\\)\\([0-9]+\\)\\s *\\([---+]\\)\\s *\\([0-9]+\\)\\([])}:<>+-]\\)" "-" "\\([[({:]\\)\\([0-9]+\\)\\s *\\([<]\\{2,3\\}\\|[>]\\{2,3\\}\\)\\s *\\([0-9]+\\)\\([])}:<>]\\)" ">>" lsh -1 "<<" ">>>" ash "<<<"] 15 (#$ . 309381)])
#@53 Compute $clog2 - ceiling log2 of VALUE.

(fn VALUE)
(defalias 'verilog-clog2 #[257 "\211\300W\203\301\207\302\303!\303\304!\245!\207" [1 0 ceiling log 2] 5 (#$ . 311260)])
#@76 Return true if the VARIABLE-NAME is a type definition.

(fn VARIABLE-NAME)
(defalias 'verilog-typedef-name-p #[257 "\205\303	\304#)\266\203\207" [verilog-typedef-regexp verilog-case-fold case-fold-search nil string-match] 8 (#$ . 311441)])
#@74 Delete autos that occupy multiple lines, between begin and end comments.
(defalias 'verilog-delete-autos-lined #[0 "\300y\210`\301\302!\205\303\304\305\306#\205\305\210\300y\210\211`|\207" [1 looking-at "\\s-*// Beginning" search-forward "// End of automatic" nil t] 5 (#$ . 311696)])
#@48 Delete begin/end auto pair at point, if empty.
(defalias 'verilog-delete-empty-auto-pair #[0 "\300y\210\301\302!\205`\212\303y\210`)|\207" [0 looking-at "\\s-*// Beginning of automatic.*\n\\s-*// End of automatics\n" 2] 2 (#$ . 311992)])
#@116 Find the close parenthesis that match the current point.
Ignore other close parenthesis with matching open parens.
(defalias 'verilog-forward-close-paren #[0 "\300\211\301V\205S\302\303\304\303\211\204.\305#\203.\306\301\224!\203'\305\307\303\304#\210\202\301\225\262\202\266\203\2049\310\311\312 \"\210h\313U\203F\211T\262\202h\314U\203\211S\262\202\207" [1 0 "[()]" nil t re-search-forward verilog-inside-comment-or-string-p "[/\"\n]" error "%s: Mismatching ()" verilog-point-text 40 41] 9 (#$ . 312239)])
#@115 Find the open parenthesis that match the current point.
Ignore other open parenthesis with matching close parens.
(defalias 'verilog-backward-open-paren #[0 "\300\211\301V\205S\302\303\304\303\211\204.\305#\203.\306\301\224!\203'\305\307\303\304#\210\202\301\224\262\202\266\203\2049\310\311\312 \"\210g\313U\203F\211T\262\202g\314U\203\211S\262\202\207" [1 0 "[()]" nil t re-search-backward verilog-inside-comment-or-string-p "[/\"]" error "%s: Mismatching ()" verilog-point-text 41 40] 9 (#$ . 312776)])
#@108 Find the open bracket that match the current point.
Ignore other open bracket with matching close bracket.
(defalias 'verilog-backward-open-bracket #[0 "\300\211\301V\205S\302\303\304\303\211\204.\305#\203.\306\301\224!\203'\305\307\303\304#\210\202\301\224\262\202\266\203\2049\310\311\312 \"\210g\313U\203F\211T\262\202g\314U\203\211S\262\202\207" [1 0 "[][]" nil t re-search-backward verilog-inside-comment-or-string-p "[/\"]" error "%s: Mismatching []" verilog-point-text 93 91] 9 (#$ . 313311)])
#@121 Delete the automatic inst/sense/arg created by autos.
Deletion stops at the matching end parenthesis, outside comments.
(defalias 'verilog-delete-to-paren #[0 "`\212\300 \210\301\302!\210\303u\210`)|\207" [verilog-backward-open-paren verilog-forward-sexp-ign-cmt 1 -1] 3 (#$ . 313841)])
#@110 Return if a .* AUTOINST is safe to delete or expand.
It was created by the AUTOS themselves, or by the user.
(defalias 'verilog-auto-star-safe #[0 "\205\n\302\303	\304Q!\207" [verilog-auto-star-expand verilog-inst-comment-re looking-at "[ 	\n\f,]*\\([)]\\|// " "\\)"] 4 (#$ . 314135)])
#@38 Delete a .* AUTOINST, if it is safe.
(defalias 'verilog-delete-auto-star-all #[0 "\300 \205\301 \207" [verilog-auto-star-safe verilog-delete-to-paren] 1 (#$ . 314429)])
#@208 Delete all .* implicit connections created by `verilog-auto-star'.
This function will be called automatically at save unless
`verilog-auto-star-save' is set, any non-templated expanded pins will be
removed.
(defalias 'verilog-delete-auto-star-implicit #[0 "\301\211\211\212eb\210\302\303\301\304#\205s`\262\305 \210\212\306\307\304#\205#\310 \262\304)\262`T|\210\211\203\212\311y\210\312\313\314Q!\203E\315\224\315\225|\210\2020)`\212\311u\210\312\316!\204H\312\317!\203\\`T|\210)\210n\203ej\210\320c\210\321\317!\210\322\323!\210\202)\207" [verilog-inst-comment-re nil re-search-forward "// Implicit \\.\\*" t beginning-of-line search-forward ");" current-indentation -1 looking-at "\\s *//\\s *" "\n" 0 "[ 	\n\f]" "," ");\n" re-search-backward delete-char 1] 7 (#$ . 314607) nil])
#@136 Perform `verilog-delete-auto' on the current buffer.
Intended for internal use inside a
`verilog-save-font-no-change-functions' block.
(defalias 'verilog-delete-auto-buffer #[0 "\301\302\303!\210)\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210eb\210\313\314\315\301#\203(\316\317!\210\202\301\302\320!)\207" [verilog-in-hooks t run-hooks verilog-before-delete-auto-hook verilog-auto-re-search-do "/\\*AUTO[A-Za-z0-9_]+\\(\\|([^)]*)\\|(\"[^\"]*\")\\).*?\\*/" verilog-delete-autos-lined "/\\*\\<\\(A\\(?:S\\|UTO\\(?:ARG\\|CONCATWIDTH\\|INST\\(?:PARAM\\)?\\|SENSE\\)\\)\\)\\>\\((.*?)\\)?\\*/" verilog-delete-to-paren "\\.\\*" verilog-delete-auto-star-all re-search-forward "\\s-*// \\(Templated\\(\\s-*AUTONOHOOKUP\\)?\\|Implicit \\.\\*\\)\\([ 	LT0-9]*\\| LHS: .*\\)$" nil replace-match "" verilog-delete-auto-hook] 4 (#$ . 315416)])
#@260 Delete the automatic outputs, regs, and wires created by \[verilog-auto].
Use \[verilog-auto] to re-insert the updated AUTOs.

The hooks `verilog-before-delete-auto-hook' and `verilog-delete-auto-hook' are
called before and after this function, respectively.
(defalias 'verilog-delete-auto #[0 "\212\306 \203\307\306 !\210\203\310 \204\311p\312 )\202Z\313\314\315!\210)deZ\f\2052\304\316!\210\313\317\320ed#\210\321\322\"\216\313\211\313\311\211\310 \204R\311p\312 .\262)\207" [verilog-save-font-mod-hooked verilog-scan-cache-tick verilog-scan-cache-preserving verilog-in-hooks font-lock-mode inhibit-point-motion-hooks buffer-file-name find-file-noselect verilog-scan-cache-ok-p nil verilog-delete-auto-buffer t run-hooks verilog-before-save-font-hook 0 run-hook-with-args before-change-functions make-closure #[0 "\303\304ed	$\210\300\203\305\306!\210\306\307\310!)\207" [V0 verilog-save-font-mod-hooked verilog-in-hooks run-hook-with-args after-change-functions font-lock-mode t run-hooks verilog-after-save-font-hook] 5] inhibit-modification-hooks verilog-no-change-functions after-change-functions] 6 (#$ . 316266) nil])
#@1111 Examine legacy non-AUTO code and insert AUTOs in appropriate places.

Any always @ blocks with sensitivity lists that match computed lists will
be replaced with /*AS*/ comments.

Any cells will get /*AUTOINST*/ added to the end of the pin list.
Pins with have identical names will be deleted.

Argument lists will not be deleted, /*AUTOARG*/ will only be inserted to
support adding new ports.  You may wish to delete older ports yourself.

For example:

        module ExampInject (i, o);
          input i;
          input j;
          output o;
          always @ (i or j)
             o = i | j;
          InstModule instName
            (.foobar(baz),
             .j(j));
        endmodule

Typing \[verilog-inject-auto] (with an appropriate submodule not
shown) will make this into:

        module ExampInject (i, o/*AUTOARG*/
          // Inputs
          j);
          input i;
          output o;
          always @ (/*AS*/i or j)
             o = i | j;
          InstModule instName
            (.foobar(baz),
             /*AUTOINST*/
             // Outputs
             j(j));
        endmodule
(defalias 'verilog-inject-auto #[0 "\300\301!\207" [verilog-auto t] 2 (#$ . 317431) nil])
#@59 Inject AUTOARG into new code.  See `verilog-inject-auto'.
(defalias 'verilog-inject-arg #[0 "\212eb\210\300\301\302\301\211\204+\303#\203+\304\305\224!\203$\303\306\301\302#\210\202\305\225\262\202\266\203\205\244\212\307\301\302\301\211\204X\303#\203X\304\305\224!\203Q\303\306\301\302#\210\2025\305\225\262\2025\266`)\303\310\302#\204\240\311\301\302\301\211\204\213\303#\203\213\304\305\224!\203\204\303\306\301\302#\210\202h\305\225\262\202h\266\312u\210\313 \210\312u\210\314\315!\203\240\316\317!\210\210\202)\207" ["\\<\\(connect\\)?module\\>" nil t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" "\\<end\\(connect\\)?module\\>" "/\\*AUTOARG\\*/" ";" -1 verilog-backward-syntactic-ws-quick looking-at ")" verilog-insert "/*AUTOARG*/"] 9 (#$ . 318637)])
#@61 Inject AUTOSENSE into new code.  See `verilog-inject-auto'.
(defalias 'verilog-inject-sense #[0 "\212eb\210\300\301\302\301\211\204+\303#\203+\304\305\224!\203$\303\306\301\302#\210\202\305\225\262\202\266\203\205\234`\307 \211\310\311\"\262\301\211\312u\210\313\314!\210\312u\210\315\302\301\211\204m\316#\203m\304\305\224!\203f\316\317\301\302#\210\202J\305\224\262\202J\266\203\204\227\320\321`\"!\262\322\301\"\262\323\"\204\227\323\"\204\227`|\210\324\325!\210\266\202)\207" ["\\<always\\s *@\\s *(" nil t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" verilog-modi-current verilog-modi-cache-results verilog-read-decls -1 verilog-forward-sexp-ign-cmt 1 "/\\*\\(AUTOSENSE\\|AS\\)\\*/" re-search-backward "[/\"]" verilog-signals-from-signame verilog-read-signals verilog-auto-sense-sigs verilog-signals-not-in verilog-insert "/*AS*/"] 13 (#$ . 319458)])
#@60 Inject AUTOINST into new code.  See `verilog-inject-auto'.
(defalias 'verilog-inject-inst #[0 "\212eb\210\301\302\303\302\211\204+\304#\203+\305\306\224!\203$\304\307\302\303#\210\202\306\225\262\202\266\203\205\310 \210h\311U\203B\312u\210\313 \210\202\312u\210i\312_\212\313 \210`)\314\303\302\211\204u\304#\203u\305\306\224!\203n\304\307\302\303#\210\202R\306\225\262\202R\266\203\203\201\211b\266\202\302\315\303\302\211\204\252\304#\203\252\305\306\224!\203\243\304\307\302\303#\210\202\207\306\225\262\202\207\266\203\203\334\306\224\306\225|\210\211\306\225\306\224ZZ\262\316\317!\204\312\316\320!\203\203\306\224\306\225|\210\211\306\225\306\224ZZ\262\202\276)\313 \210\321u\210\322\323`S\303#\203\365\306\224\306\225|\210\202\343\324\325!\210\326\327\"\266\202)\207" [case-fold-search "\\.\\s *[a-zA-Z0-9`_$]+\\s *(\\s *[a-zA-Z0-9`_$]+\\s *)" nil t re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" verilog-backward-open-paren 35 1 verilog-forward-close-paren "\\(/\\*AUTOINST\\((.*?)\\)?\\*/\\|\\.\\*\\)" "\\.\\s *\\([a-zA-Z0-9`_$]+\\)\\s *(\\s *\\1\\s *)\\s *" looking-at "[ 	\n\f,]+" "//[^\n]*" -1 re-search-backward "[ 	\n\f]+" verilog-insert "\n" verilog--insert-indent "/*AUTOINST*/"] 10 (#$ . 320380)])
#@241 Return nil if buffers B1 and B2 have same contents.
Else, return point in B1 that first mismatches.
If optional WHITESPACE true, ignore whitespace.
If optional REGEXP, ignore differences matching it.

(fn B1 B2 &optional WHITESPACE REGEXP)
(defalias 'verilog-diff-buffers-p #[1026 "\212\301rq\210eb)rq\210eb)rq\210d)rq\210d)\302\211\301\211=\203/=\204\315	\203Vrq\210b\210\303\301w\210`\262)r\nq\210b\210\303\301w\210`\262)\203\205rq\210b\210\304	!\203o\305\225\262)r\nq\210b\210\304	!\203\204\305\225\262)ZZ^\262\306\n\\\f\\&\262\305U\203\260\211\202\264\307!S\262\262\262\\\262\\\262\202!=\205\331=?\205\337)\266\210)\207" [case-fold-search nil -1 " 	\n
\f" looking-at 0 compare-buffer-substrings abs] 20 (#$ . 321674)])
#@296 View the differences between file F1 and buffer B2.
This requires the external program `diff-command' to be in your `exec-path',
and uses `diff-switches' in which you may want to have "-u" flag.
Ignores WHITESPACE if t, and writes output to stdout if SHOW.

(fn F1 B2 &optional WHITESPACE SHOW)
(defalias 'verilog-diff-file-with-buffer #[1026 "\302!\204
\303\304\305!\"\207\306\307\310\"r\211q\210\311\312\"\216p\313\314!\315\216rq\210\214~\210\316ed\317\320%\210*\321\317\310	\n\203?\322\202@\323
&\210\203Vrq\210\303\324\325 \"\210))\326\327!\210\302!\205d\330!\266\202*\207" [diff-command diff-switches file-exists-p message "Buffer `%s' has no associated file on disk" buffer-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] make-temp-file "vm-diff-auto-" #[0 "\300\207" [nil] 1] write-region nil nomessage call-process "-b" "" "%s" buffer-string sit-for 0 delete-file] 16 (#$ . 322498)])
#@197 Report differences detected with `verilog-diff-auto'.
Differences are between buffers B1 and B2, starting at point
DIFFPT.  This function is called via `verilog-diff-function'.

(fn B1 B2 DIFFPT)
(defalias 'verilog-diff-report #[771 "rq\210\301 )\302\303rq\210\304e\")#\210\203\"\305\306\211$\207\307\"\207" [noninteractive buffer-file-name verilog-warn-error "%s:%d: Difference in AUTO expansion found" count-lines verilog-diff-file-with-buffer t ediff-buffers] 10 (#$ . 323487)])
#@448 Expand AUTOs in a temporary buffer and indicate any change.
Whitespace is ignored when detecting differences, but once a
difference is detected, whitespace differences may be shown.

To call this from the command line, see \[verilog-batch-diff-auto].

The action on differences is selected with
`verilog-diff-function'.  The default is `verilog-diff-report'
which will report an error and run `ediff' in interactive mode,
or `diff' in batch mode.
(defalias 'verilog-diff-auto #[0 "p\304\211\300 \212\305\306!\203\307\306!\210\304\310\306!)\262rq\210\211\311\312#\216rq\210\304)\313 \210\314 \210+\315\316	$\262\204M\n\204F\317\320!\210\307\306!\210\202S#\210)\207" [buffer-file-name verilog-diff-ignore-regexp noninteractive verilog-diff-function nil get-buffer "*Verilog-Diff*" kill-buffer clone-buffer make-closure #[0 "r\300q\210\301\211)\207" [V0 V1 buffer-file-name] 2] verilog-auto verilog-star-cleanup verilog-diff-buffers-p t message "AUTO expansion identical"] 9 (#$ . 323988) nil])
#@43 On saving or diff, cleanup .* expansions.
(defalias 'verilog-star-cleanup #[0 "?\205\301 \207" [verilog-auto-star-save verilog-delete-auto-star-implicit] 1 (#$ . 325009)])
#@39 On saving see if we need auto update.
(defalias 'verilog-auto-save-check #[0 "\203Q\212\303 \304\305\"\216\306eb\210\307\310\306\311#*\262)\203Q\312=\203)\313 \210\202Q\314 \203Q\n\315 =\204Q\316=\203A\313 \210\202Q\317\320!\203J\313 \210\321\302!\210\315 \322 \210\306\207" [verilog-auto-save-policy case-fold-search verilog-auto-update-tick match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] nil re-search-forward "AUTO" t force verilog-auto buffer-modified-p buffer-chars-modified-tick detect yes-or-no-p "AUTO statements not recomputed, do it now? " make-local-variable verilog-star-cleanup] 5 (#$ . 325190)])
#@55 Return file local variable segment at bottom of file.
(defalias 'verilog-auto-read-locals #[0 "\212db\210\300\301\302\303#\203\304`d\"\202\305)\207" [re-search-backward "Local Variables:" nil t buffer-substring-no-properties ""] 4 (#$ . 325857)])
#@121 Read file local variable segment at bottom of file if it has changed.
If FORCE, always reread it.

(fn &optional FORCE)
(defalias 'verilog-auto-reeval-locals #[256 "\301 \204
\232?\205\302\300!\210\211\303 \210\304\207" [verilog-auto-last-file-locals verilog-auto-read-locals make-local-variable hack-local-variables t] 4 (#$ . 326115)])
#@135 Print a list of ports for AUTOARG.
Takes SIGS list, adds MESSAGE to front and inserts each at INDENT-PT.

(fn SIGS MESSAGE INDENT-PT)
(defalias 'verilog-auto-arg-ports #[771 "\205k\203\303\304!\305\"\262\306c\210\211j\210c\210\306c\210\307j\210\205i	\310=\2036\211c\210j\210\306\262\202X\311i\\@\211@\262G\\\nV\203R\306c\210j\210\312\262\202X\211c\210\312\262@\211@\262\313\261\210A\262\202 \262\207" [verilog-auto-arg-sort verilog-auto-arg-format fill-column sort copy-alist verilog-signals-sort-compare "\n" "" single 2 " " ","] 7 (#$ . 326467)])
#@1475 Expand AUTOARG statements.
Replace the argument declarations at the beginning of the
module with ones automatically derived from input and output
statements.  This can be dangerous if the module is instantiated
using position-based connections, so use only name-based when
instantiating the resulting module.  Long lines are split based
on the `fill-column', see \[set-fill-column].

Limitations:
  Concatenation and outputting partial buses is not supported.

  Typedefs must match `verilog-typedef-regexp', which is disabled by default.

For example:

        module ExampArg (/*AUTOARG*/);
          input i;
          output o;
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampArg (/*AUTOARG*/
          // Outputs
          o,
          // Inputs
          i);
          input i;
          output o;
        endmodule

The argument declarations may be printed in declaration order to
best suit order based instantiations, or alphabetically, based on
the `verilog-auto-arg-sort' variable.

Formatting is controlled with `verilog-auto-arg-format' variable.

Any ports declared between the ( and /*AUTOARG*/ are presumed to be
predeclared and are not redeclared by AUTOARG.  AUTOARG will make a
conservative guess on adding a comma for the first signal, if you have
any ifdefs or complicated expressions before the AUTOARG you will need
to choose the comma yourself.

Avoid declaring ports manually, as it makes code harder to maintain.
(defalias 'verilog-auto-arg #[0 "\212\301 \211\302\303\"\262\304 \305H\306 \210\307\310\211\305H\262\"\311#\210\307\310\211\312H\262\"\313#\210\307\310\211\314H\262\"\315#\210\316 \210`Sf\317=\204I\320c\210j\266\203)\207" [verilog-indent-level-declaration verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-arg-pins 0 verilog-repair-open-comma verilog-auto-arg-ports verilog-signals-not-in "// Outputs" 1 "// Inouts" 2 "// Inputs" verilog-repair-close-comma 47 "\n"] 8 (#$ . 327053)])
#@1062 Expand AUTOASSIGNMODPORT statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified interface
and modport and use to build assignments into the modport, for
making verification modules that connect to UVM interfaces.

  The first parameter is the name of an interface.

  The second parameter is a regexp of modports to read from in
  that interface.

  The third parameter is the instance name to use to dot reference into.

  The optional fourth parameter is a regular expression, and only
  signals matching the regular expression will be included.

  The optional fifth parameter is a prefix to add to the signals.

Limitations:

  Interface names must be resolvable to filenames.  See `verilog-auto-inst'.

  Inouts are not supported, as assignments must be unidirectional.

  If a signal is part of the interface header and in both a
  modport and the interface itself, it will not be listed.  (As
  this would result in a syntax error when the connections are
  made.)

See the example in `verilog-auto-inout-modport'.
(defalias 'verilog-auto-assign-modport #[0 "\212\300\301\302\"\211@A@\3038\3018\3048\305\306\307\"\211\262\205\347\310 \311\312\"\262\313\"\314\211\301H\262\315\211\303H\262\316!\"\"\314\211\301H\262\315\211\317H\262\316!\"\"\320y\210\321\322\323\"\324\305#!\262\321\322\323\"\325\305#!\262\326\327!\330\"\262\326\327!\330\"\262\204\212\211\205\345\331\332\"\210\211\211\203\267\331\333\n@\211@\262P\334\335@\211@\262\336&\210\211A\262\202\220\210\211\203\340\331\333\f\335@\211@\262\334@\211@\262P\336&\210\211A\262\202\271\210\331\337\"\266\205\266\207)\207" [verilog-read-auto-params 3 5 2 4 nil verilog-modi-lookup t current-indentation verilog-modi-cache-results verilog-read-decls verilog-modi-modport-lookup verilog-signals-in verilog-signals-not-in verilog-decls-get-ports 0 1 verilog-signals-edit-wire-reg verilog-signals-matching-dir-re verilog-signals-matching-regexp "input" "output" sort copy-alist verilog-signals-sort-compare verilog--insert-indent "// Beginning of automatic assignments from modport\n" "assign " " = " "." ";\n" "// End of automatics\n"] 23 (#$ . 329065)])
#@16 

(fn PORT-ST)
(defalias 'verilog-auto-inst-port-map #[257 "\300\207" [nil] 2 (#$ . 331294)])
#@26 See `verilog-auto-inst'.
(defvar vl-cell-type nil (#$ . 331394))
#@26 See `verilog-auto-inst'.
(defvar vl-cell-name nil (#$ . 331465))
#@26 See `verilog-auto-inst'.
(defvar vl-memory nil (#$ . 331536))
#@26 See `verilog-auto-inst'.
(defvar vl-modport nil (#$ . 331604))
#@26 See `verilog-auto-inst'.
(defvar vl-name nil (#$ . 331673))
#@26 See `verilog-auto-inst'.
(defvar vl-width nil (#$ . 331739))
#@26 See `verilog-auto-inst'.
(defvar vl-dir nil (#$ . 331806))
#@26 See `verilog-auto-inst'.
(defvar vl-bits nil (#$ . 331871))
#@26 See `verilog-auto-inst'.
(defvar vl-mbits nil (#$ . 331937))
#@413 Print out an instantiation connection for this PORT-ST.
Inside SECTION, insert to INDENT-PT, use template TPL-LIST.
@ are instantiation numbers, replaced with TPL-NUM.
@"(expression @)" are evaluated, with @ as a variable.
If FOR-STAR add comment it is a .* expansion.
If PAR-VALUES replace final strings with these parameter values.

(fn SECTION PORT-ST INDENT-PT MODDECLS TPL-LIST TPL-NUM FOR-STAR PAR-VALUES)
(defalias 'verilog-auto-inst-port #[2056 "\211@\262\306@\"\206\307!\211@\262\310\211A@\262!\262\3118\262\3128\262\3138\262\203l\211\3138\262\205g\314\3138\262\211\203d\211@P\262\211A\262\202S\266\202\262\202m\314
\315=\204\245
\316=\203\204\3178\262\203\245\306\320	!\"\203\245\211A@\262\306\320\n!\"\211A@\262\232\204\263\211A@\262\206\264\314\202\264\314@\321A\321\211\203\213@\314\232\204\213\203t\322@@\323Q\324@A@\325Q\315\211@\326\327#\203\374\330$\262G\326\224G\\^\262\202\335\266\206@\322@@\323Q\324@A@\325Q\315\211\f\326\327#\2031\330$\262G\326\224G\\^\262\202\266\206\205l\322@@\323Q\324@A@\325Q\315\211\326\327#\203i\330$\262G\326\224G\\^\262\202J\266\206A\262\202\307\331@!@\331\f!\205\205\331!\310@!\211A@\262\203\237\3138\262\204\251\3128\262\203\305\332\f@\203\265\333\202\266\314\203\276\202\277\314\334\260\202\311@\260\262\n\203\361\306\f\211\311H\262\"\211\205\345\211\3118\262?\262\203\361\333\nP\202\362\314Q\262\203A@\262\2023A@\2033A@\211\2032\327@@\"\203+\211@\262\330@A@\315\321	$\262\211A\262\202
\210\203M\327\335\"\203\315\327\336\"\203\315\326\211\224O\337 \340\341\"\216\342\343\"\344\345\321\211\326\327#\203z\330$\262G\326\224G\\^\262\202[\266\206\262\346\321\211\326\327#\203\245\330$\262G\326\224G\\^\262\202\206\266\206\262\347\350\351!@!\352\"\211\247\203\275\353!\262\262)\262\326\225\321OQ\262\202>\346\321\211\326\327#\203\363\330$\262G\326\224G\\^\262\202\324\266\206\262\354\321\211\326\327#\203\330$\262G\326\224G\\^\262\202\376\266\206\262\355@\321\211\326\327#\203H\330$\262G\326\224G\\^\262\202)\266\206\262\204WB?\205\366\356\"\210\nj\210\333\261\210C\203r\232\204|Dj\210\324\325\261\210\357c\210\203\330\360!\210D\361W\203\222\362\202\223\363D\\j\210E\364=\203\252\365\366\367@#\210\202\310E\203\304\365\366\370\371\3728!\373\371\312\n8!%\210\202\310\365\366!\210\365\3748\203\323\375\202\324\376!\202\366\203\364D\361W\203\350\362\202\351\363D\\j\210\365\377!\202\366\376c.\207" [vl-name vl-width vl-modport vl-memory vl-mbits verilog-auto-inst-vector assoc verilog-auto-inst-port-map verilog-make-width-expression 8 3 7 "" t unsigned 5 verilog-decls-get-signals nil "\\<" "\\>" "(" ")" 0 string-match replace-match verilog-simplify-range-expression "/*" "." "*/" "@\".*[^\\]\"" "@\"\\(\\([^\\\"]\\|\\\\.\\)*\\)\"" match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] match-string 1 "\\\\\"" "\"" "@" prin1 eval read-from-string #[257 "\300\207" [nil] 2 "\n\n(fn CH)"] number-to-string "\\[\\]\\[\\]" "\\[\\]" verilog--auto-inst-first "," verilog-read-auto-template-hit 48 24 16 lhs verilog-insert " // Templated" " LHS: " " T" int-to-string 2 " L" 4 " AUTONOHOOKUP\n" "\n" " // Implicit .*\n" vl-bits case-fold-search verilog-auto-inst-template-required verilog-auto-inst-dot-name verilog-auto-inst-column verilog-auto-inst-template-numbers] 27 (#$ . 332005)])
#@55 Local first-in-section for `verilog-auto-inst-first'.
(defvar verilog-auto-inst-first-section nil (#$ . 335647))
#@59 Local first-in-any-section for `verilog-auto-inst-first'.
(defvar verilog-auto-inst-first-any nil (#$ . 335766))
#@92 Insert , and SECTION before port, as part of \[verilog-auto-inst].

(fn INDENT-PT SECTION)
(defalias 'verilog--auto-inst-first #[514 "\203@\302\303c\210\212\304\302\211\211\211\2041\305#\2031\306\307\224!\203*\305\310\302\311#\210\202\307\224\262\202\266\312\313!\203?\314u\210\315c\210)	\205J\302\316\"\207" [verilog-auto-inst-first-any verilog-auto-inst-first-section nil "\n" "[^ 	\n\f]" re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" t looking-at ")\\|\\*" 1 "," verilog--insert-indent] 10 (#$ . 335885)])
#@158 For `verilog-auto-inst' print a list of ports using `verilog-auto-inst-port'.

(fn SECTION SIG-LIST INDENT-PT MODDECLS TPL-LIST TPL-NUM FOR-STAR PAR-VALUES)
(defalias 'verilog-auto-inst-port-list #[2056 "\203
\302\303!\304\"\262\305\306\307\310\n						&\")\207" [verilog-auto-inst-sort verilog-auto-inst-first-section sort copy-alist verilog-signals-sort-compare t mapc make-closure #[257 "\307\300\301\302\303\304\305\306&\207" [V0 V1 V2 V3 V4 V5 V6 verilog-auto-inst-port] 10 "\n\n(fn PORT)"]] 18 (#$ . 336439)])
#@758 Expand SystemVerilog .* pins, as part of \[verilog-auto].

If `verilog-auto-star-expand' is set, .* pins are treated if they were
AUTOINST statements, otherwise they are ignored.  For safety, Verilog mode
will also ignore any .* that are not last in your pin list (this prevents
it from deleting pins following the .* when it expands the AUTOINST.)

On writing your file, unless `verilog-auto-star-save' is set, any
non-templated expanded pins will be removed.  You may do this at any time
with \[verilog-delete-auto-star-implicit].

If you are converting a module to use .* for the first time, you may wish
to use \[verilog-inject-auto] and then replace the created AUTOINST with .*.

See `verilog-auto-inst' for examples, templates, and more information.
(defalias 'verilog-auto-star #[0 "\300 \205\301 \207" [verilog-auto-star-safe verilog-auto-inst] 1 (#$ . 336979)])
#@12876 Expand AUTOINST statements, as part of \[verilog-auto].
Replace the pin connections to an instantiation or interface
declaration with ones automatically derived from the module or
interface header of the instantiated item.

You may also provide an optional regular expression, in which
case only I/O matching the regular expression will be included,
or excluded if the regexp begins with ?! (question-mark
exclamation-mark).

If `verilog-auto-star-expand' is set, also expand SystemVerilog .* ports,
and delete them before saving unless `verilog-auto-star-save' is set.
See `verilog-auto-star' for more information.

The pins are printed in declaration order or alphabetically,
based on the `verilog-auto-inst-sort' variable.

To debug what file a submodule comes from, in a buffer with
AUTOINST, use \[verilog-goto-defun] to switch buffers to the
point containing the given symbol (i.e. a submodule name)'s
module definition.

Limitations:
  Module names must be resolvable to filenames by adding a
  `verilog-library-extensions', and being found in the same directory, or
  by changing the variable `verilog-library-flags' or
  `verilog-library-directories'.  Macros `modname are translated through the
  vh-{name} Emacs variable, if that is not found, it just ignores the \=`.

  In templates you must have one signal per line, ending in a ), or ));,
  and have proper () nesting, including a final ); to end the template.

  Typedefs must match `verilog-typedef-regexp', which is disabled by default.

  SystemVerilog multidimensional input/output has only experimental support.

  SystemVerilog .name syntax is used if `verilog-auto-inst-dot-name' is set.

  Parameters referenced by the instantiation will remain symbolic, unless
  `verilog-auto-inst-param-value' is set.

  Gate primitives (and/or) may have AUTOINST for the purpose of
  AUTOWIRE declarations, etc.  Gates are the only case when
  position based connections are passed.

  The array part of arrayed instances are ignored; this may
  result in undesirable default AUTOINST connections; use a
  template instead.

For example, first take the submodule InstModule.v:

        module InstModule (o,i);
           output [31:0] o;
           input i;
           wire [31:0] o = {32{i}};
        endmodule

This is then used in an upper level module:

        module ExampInst (o,i);
           output o;
           input i;
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInst (o,i);
           output o;
           input i;
           InstModule instName
             (/*AUTOINST*/
              // Outputs
              .o        (o[31:0]),
              // Inputs
              .i        (i));
        endmodule

Where the list of inputs and outputs came from the inst module.

Exceptions:

  Unless you are instantiating a module multiple times, or the module is
  something trivial like an adder, DO NOT CHANGE SIGNAL NAMES ACROSS HIERARCHY.
  It just makes for unmaintainable code.  To sanitize signal names, try
  vrename from URL `https://www.veripool.org'.

  When you need to violate this suggestion there are two ways to list
  exceptions, placing them before the AUTOINST, or using templates.

  Any ports defined before the /*AUTOINST*/ are not included in the list of
  automatics.  This is similar to making a template as described below, but
  is restricted to simple connections just like you normally make.  Also note
  that any signals before the AUTOINST will only be picked up by AUTOWIRE if
  you have the appropriate // Input or // Output comment, and exactly the
  same line formatting as AUTOINST itself uses.

        InstModule instName
          (// Inputs
           .i           (my_i_dont_mess_with_it),
           /*AUTOINST*/
           // Outputs
           .o           (o[31:0]));


Templates:

  For multiple instantiations based upon a single template, create a
  commented out template:

        /* InstModule AUTO_TEMPLATE (
                .sig3   (sigz[]),
                );
        */

  Templates go ABOVE the instantiation(s).  When an instantiation is
  expanded `verilog-mode' simply searches up for the closest template.
  Thus you can have multiple templates for the same module, just alternate
  between the template for an instantiation and the instantiation itself.
  (For backward compatibility if no template is found above, it
  will also look below, but do not use this behavior in new designs.)

  The module name must be the same as the name of the module in the
  instantiation name, and the code "AUTO_TEMPLATE" must be in these exact
  words and capitalized.  Only signals that must be different for each
  instantiation need to be listed.

  Inside a template, a [] in a connection name (with nothing else
  inside the brackets) will be replaced by the same bus subscript
  as it is being connected to, or the [] will be removed if it is
  a single bit signal.

  Inside a template, a [][] in a connection name will behave
  similarly to a [] for scalar or single-dimensional connection;
  for a multidimensional connection it will print a comment
  similar to that printed when a template is not used.  Generally
  it is a good idea to do this for all connections in a template,
  as then they will work for any width signal, and with AUTOWIRE.
  See PTL_BUS becoming PTL_BUSNEW below.

  Inside a template, a [] in a connection name (with nothing else inside
  the brackets) will be replaced by the same bus subscript as it is being
  connected to, or the [] will be removed if it is a single bit signal.
  Generally it is a good idea to do this for all connections in a template,
  as then they will work for any width signal, and with AUTOWIRE.  See
  PTL_BUS becoming PTL_BUSNEW below.

  If you have a complicated template, set `verilog-auto-inst-template-numbers'
  to see which regexps are matching.  Don't leave that mode set after
  debugging is completed though, it will result in lots of extra differences
  and merge conflicts.

  If a connection name does not match any template, it is
  connected to a net by the same name as the port (unless
  `verilog-auto-inst-template-required' is true).

  Setting `verilog-auto-template-warn-unused' will report errors
  if any template lines are unused.

  For example:

        /* InstModule AUTO_TEMPLATE (
                .ptl_bus        (ptl_busnew[]),
                );
        */
        InstModule ms2m (/*AUTOINST*/);

  Typing \[verilog-auto] will make this into:

        InstModule ms2m (/*AUTOINST*/
            // Outputs
            .NotInTemplate      (NotInTemplate),
            .ptl_bus            (ptl_busnew[3:0]),
            ....


Multiple Module Templates:

  The same template lines can be applied to multiple modules with
  the syntax as follows:

        /* InstModuleA AUTO_TEMPLATE
           InstModuleB AUTO_TEMPLATE
           InstModuleC AUTO_TEMPLATE
           InstModuleD AUTO_TEMPLATE (
                .ptl_bus        (ptl_busnew[]),
                );
        */

  Note there is only one AUTO_TEMPLATE opening parenthesis.

@ Templates:

  It is common to instantiate a cell multiple times, so templates make it
  trivial to substitute part of the cell name into the connection name.

        /* InstName AUTO_TEMPLATE <optional "REGEXP"> (
                .sig1   (sigx[@]),
                .sig2   (sigy[@"(% (+ 1 @) 4)"]),
                );
        */

  If no regular expression is provided immediately after the AUTO_TEMPLATE
  keyword, then the @ character in any connection names will be replaced
  with the instantiation number; the first digits found in the cell's
  instantiation name.

  If a regular expression is provided, the @ character will be replaced
  with the first () grouping that matches against the cell name.  Using a
  regexp of `\([0-9]+\)' provides identical values for @ as when no
  regexp is provided.  If you use multiple layers of parenthesis,
  `test\([^0-9]+\)_\([0-9]+\)' would replace @ with non-number
  characters after test and before _, whereas
  `\(test\([a-z]+\)_\([0-9]+\)\)' would replace @ with the entire
  match.

  For example:

        /* InstModule AUTO_TEMPLATE (
                .ptl_mapvalidx          (ptl_mapvalid[@]),
                .ptl_mapvalidp1x        (ptl_mapvalid[@"(% (+ 1 @) 4)"]),
                );
        */
        InstModule ms2m (/*AUTOINST*/);

  Typing \[verilog-auto] will make this into:

        InstModule ms2m (/*AUTOINST*/
            // Outputs
            .ptl_mapvalidx              (ptl_mapvalid[2]),
            .ptl_mapvalidp1x            (ptl_mapvalid[3]));

  Note the @ character was replaced with the 2 from "ms2m".

  Alternatively, using a regular expression for @:

        /* InstModule AUTO_TEMPLATE "_\([a-z]+\)" (
                .ptl_mapvalidx          (@_ptl_mapvalid),
                .ptl_mapvalidp1x        (ptl_mapvalid_@),
                );
        */
        InstModule ms2_FOO (/*AUTOINST*/);
        InstModule ms2_BAR (/*AUTOINST*/);

  Typing \[verilog-auto] will make this into:

        InstModule ms2_FOO (/*AUTOINST*/
            // Outputs
            .ptl_mapvalidx              (FOO_ptl_mapvalid),
            .ptl_mapvalidp1x            (ptl_mapvalid_FOO));
        InstModule ms2_BAR (/*AUTOINST*/
            // Outputs
            .ptl_mapvalidx              (BAR_ptl_mapvalid),
            .ptl_mapvalidp1x            (ptl_mapvalid_BAR));


Regexp Templates:

  A template entry of the form

            .pci_req\([0-9]+\)_l      (pci_req_jtag_[\1]),

  will apply an Emacs style regular expression search for any port beginning
  in pci_req followed by numbers and ending in _l and connecting that to
  the pci_req_jtag_[] net, with the bus subscript coming from what matches
  inside the first set of \( \).  Thus pci_req2_l becomes pci_req_jtag_[2].

  Since \([0-9]+\) is so common and ugly to read, a @ in the port name
  does the same thing.  (Note a @ in the connection/replacement text is
  completely different -- still use \1 there!)  Thus this is the same as
  the above template:

            .pci_req@_l         (pci_req_jtag_[\1]),

  Here's another example to remove the _l, useful when naming conventions
  specify _ alone to mean active low.  Note the use of [] to keep the bus
  subscript:

            .\(.*\)_l         (\1_[]),

Lisp Templates:

  First any regular expression template is expanded.

  If the syntax @"( ... )" is found in a connection, the expression in
  quotes will be evaluated as a Lisp expression, with @ replaced by the
  instantiation number.  The MAPVALIDP1X example above would put @+1 modulo
  4 into the brackets.  Quote all double-quotes inside the expression with
  a leading backslash (\"...\"); or if the Lisp template is also a
  regexp template backslash the backslash quote (\\"...\\").

  There are special variables defined that are useful in these
  Lisp functions:

        vl-name        Name portion of the input/output port.
        vl-bits        Bus bits portion of the input/output port (`[2:0]').
        vl-mbits       Multidimensional array bits for port (`[2:0][3:0]').
        vl-width       Width of the input/output port (`3' for [2:0]).
                       May be a (...) expression if bits isn't a constant.
        vl-dir         Direction of the pin input/output/inout/interface.
        vl-memory      The unpacked array part of the I/O port (`[5:0]').
        vl-modport     The modport, if an interface with a modport.
        vl-cell-type   Module name/type of the cell (`InstModule').
        vl-cell-name   Instance name of the cell (`instName').

  Normal Lisp variables may be used in expressions.  See
  `verilog-read-defines' which can set vh-{definename} variables for use
  here.  Also, any comments of the form:

        /*AUTO_LISP(setq foo 1)*/

  will evaluate any Lisp expression inside the parenthesis between the
  beginning of the buffer and the point of the AUTOINST.  This allows
  functions to be defined or variables to be changed between instantiations.
  (See also `verilog-auto-insert-lisp' if you want the output from your
  lisp function to be inserted.)

  Note that when using lisp expressions errors may occur when @ is not a
  number; you may need to use the standard Emacs Lisp functions
  `number-to-string' and `string-to-number'.

  After the evaluation is completed, @ substitution and [] substitution
  occur.


Ignoring Hookup:

  AUTOWIRE and related AUTOs will read the signals created by a template.
  To specify that a signal should not be parsed to participate in this
  hookup, add a AUTONOHOOKUP comment to the template.  For example:

            .pci_req_l  (pci_req_not_to_wire),  //AUTONOHOOKUP


For more information see the \[verilog-faq] and forums at URL
`https://www.veripool.org'.
(defalias 'verilog-auto-inst #[0 "\212\306\307\310\"\211@`\212\311u\210\312\313!)\212\314 \210iT)\315\316\317\\\316\245_\\]\320\321 \211\322\323\"\262\324\211\211\211\211\211\211\211\325 \262\326 \262\327 \307H\262\330e\"\210\f\205U\331 \262
\235?\205\332\332\320\"\211\262\205\332\322\323\"\262\262\333!\211\307H\211\32478\334#)\266\203\203\226\335\310\"\202\227\336\262\310H\262\266\211\337H\262\340\232\205\266\341\211\337H\262\"\3429\203\305\343\"\262\211\203\340:\203\340\344\345
	&\210)\210\341\211\316H\262\"\3409\203\373\343\"\262\211\203\344\346
	&\210)\210\341\211\307H\262\"\3479\203,\343\"\262\211\203B\344\350
	&\210)\210\341\211\310H\262\"\3519\203]\343\"\262\211\203s\344\352
	&\210)\210\341\211\353H\262\"\3549\203\216\343\"\262\211\203\244\344\355
	&\210)\210\212	?\205\331\356\357\320#\210\360\310!\210\361c\210\362\363!\210\360\364!\210\362\365\324\320#\203\316\360\364!\210\362\366\324\320#\205\331\360\364!)*\266\217)\207" [verilog-auto-inst-column verilog-auto-inst-first-any vl-cell-type vl-cell-name verilog-auto-inst-param-value verilog-gate-keywords verilog-read-auto-params 0 1 -2 looking-at "\\.\\*" verilog-backward-open-paren 16 8 7 t verilog-modi-current verilog-modi-cache-results verilog-read-decls nil verilog-read-inst-module verilog-read-inst-name verilog-read-inst-pins verilog-read-auto-lisp verilog-read-inst-param-value verilog-modi-lookup verilog-read-auto-template string-match match-string "" 3 "interface" verilog-signals-not-in "interfaced" verilog-signals-matching-regexp verilog-auto-inst-port-list "// Interfaced\n" "// Interfaces\n" "output" "// Outputs\n" "inout" "// Inouts\n" 2 "input" "// Inputs\n" re-search-backward "," delete-char ");" search-forward "\n" -1 ")" ";" verilog-case-fold case-fold-search vl-dir verilog-auto-inst-interfaced-ports] 25 (#$ . 337862)])
#@1317 Expand AUTOINSTPARAM statements, as part of \[verilog-auto].
Replace the parameter connections to an instantiation with ones
automatically derived from the module header of the instantiated netlist.

You may also provide an optional regular expression, in which
case only parameters matching the regular expression will be
included, or excluded if the regexp begins with ?! (question-mark
exclamation-mark).

See \[verilog-auto-inst] for limitations, and templates to customize the
output.

For example, first take the submodule InstModule.v:

        module InstModule (o,i);
           parameter PAR;
        endmodule

This is then used in an upper level module:

        module ExampInstParam (o,i);
           parameter PAR;
           InstModule #(/*AUTOINSTPARAM*/)
                instName (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInstParam (o,i);
           parameter PAR;
           InstModule #(/*AUTOINSTPARAM*/
                        // Parameters
                        .PAR    (PAR))
                instName (/*AUTOINST*/);
        endmodule

Where the list of parameter connections come from the inst module.

Templates:

  You can customize the parameter connections using AUTO_TEMPLATEs,
  just as you would with \[verilog-auto-inst].
(defalias 'verilog-auto-inst-param #[0 "\212\306\307\310\"\211@`\212\311 \210iT)\312\313\314\\\313\245_\\]\315\316 \211\317\320\"\262\321\211\211\211\211\211\211\212\322\321\211\211\211\204U\323#\203U\324\307\224!\203N\323\325\321\315#\210\2022\307\225\262\2022\266\326 )\262\212\322\321\211\211\211\204\204\323#\203\204\324\307\224!\203}\323\325\321\315#\210\202a\307\225\262\202a\266\327 )\262\330 \307H\262\331e\f\"\210\332\315\"\211\262\2050\317\320\"\262\262\333!\211\307H\211\321\f\334#)\266\203\203\320\335\310\"\202\321\336\262\310H\262\266\337\211\314H\262\"\340+\f\203\362\341\"\262\211\203\342\343
\f\321\211&\210)\210\212	?\205/\344\345\f\315#\210\346\310!\210\347c\210\350\351!\210\346\352!\210\350\347\321\315#\205/\346\352!)*\266\215)\207" [verilog-auto-inst-column verilog-auto-inst-first-any vl-cell-type vl-cell-name verilog-case-fold case-fold-search verilog-read-auto-params 0 1 verilog-backward-open-paren 16 8 7 t verilog-modi-current verilog-modi-cache-results verilog-read-decls nil "[(;]" re-search-forward verilog-inside-comment-or-string-p "[/\"\n]" verilog-read-inst-module verilog-read-inst-name verilog-read-inst-pins verilog-read-auto-lisp verilog-modi-lookup verilog-read-auto-template string-match match-string "" verilog-signals-not-in "parameter" verilog-signals-matching-regexp verilog-auto-inst-port-list "// Parameters\n" re-search-backward "," delete-char ")" search-forward "\n" -1 vl-dir] 23 (#$ . 352749)])
#@826 Expand AUTOREG statements, as part of \[verilog-auto].
Make reg statements for any output that isn't already declared,
and isn't a wire output from a block.  `verilog-auto-wire-type'
may be used to change the datatype of the declarations.

Limitations:
  This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls').

  This does NOT work on memories, declare those yourself.

An example:

        module ExampReg (o,i);
           output o;
           input i;
           /*AUTOREG*/
           always o = i;
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampReg (o,i);
           output o;
           input i;
           /*AUTOREG*/
           // Beginning of automatic regs
           reg          o;
           // End of automatics
           always o = i;
        endmodule
(defalias 'verilog-auto-reg #[0 "\212\300 \301 \211\302\303\"\262\302\304\"\262\305\211\306H\262\307\310\311\211\306H\262\"\211\312H\262\211\313H\262\211\314H\262\211\315H\262\211\316H\262	\211\306H\262\n\211\317H\262&\"\211\205q\320 \210\321\322\"\210\323\324\325%\210\321\326\"\266\205)\207" [current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in 0 append verilog-signals-with verilog-sig-type 3 5 6 7 4 1 verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic regs (for this module's undeclared outputs)\n" verilog-insert-definition "reg" nil "// End of automatics\n"] 17 (#$ . 355603)])
#@1185 Expand AUTOREGINPUT statements, as part of \[verilog-auto].
Make reg statements instantiation inputs that aren't already
declared or assigned to.  This is useful for making a top level
shell for testing the module that is to be instantiated.

Limitations:
  This ONLY detects inputs of AUTOINSTants (see `verilog-read-sub-decls').

  This does NOT work on memories, declare those yourself.

  Assignments cause the assigned-to variable not to be declared unless
  the name matches `verilog-auto-reg-input-assigned-ignore-regexp'.

An example (see `verilog-auto-inst' for what else is going on here):

        module InstModule (input i);
        endmodule

        module ExampRegInput ();
           /*AUTOREGINPUT*/
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampRegInput ();
           /*AUTOREGINPUT*/
           // Beginning of automatic reg inputs
           reg          i;      // To instName of InstModule.v
           // End of automatics
           InstModule instName
             (/*AUTOINST*/
              // Inputs
              .i                (i));
        endmodule
(defalias 'verilog-auto-reg-input #[0 "\212\301 \302 \211\303\304\"\262\303\305\"\262\306\307\310\211\311H\262\211\312H\262\"\310\313!\314\211\315H\262\"\"\"!\211\205N\316 \210\317\320\"\210\321\322\323%\210\317\324\"\266\205)\207" [verilog-auto-reg-input-assigned-ignore-regexp current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-combine-bus verilog-signals-not-in append 2 1 verilog-decls-get-signals verilog-signals-not-matching-regexp 5 verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic reg inputs (for undeclared instantiated-module inputs)\n" verilog-insert-definition "reg" nil "// End of automatics\n"] 13 (#$ . 357168)])
#@37 Prepare variables due to AUTOLOGIC.
(defalias 'verilog-auto-logic-setup #[0 "?\205\f\301\300!\210\302\211\207" [verilog-auto-wire-type make-local-variable "logic"] 2 (#$ . 359115)])
#@372 Expand AUTOLOGIC statements, as part of \[verilog-auto].
Make wire statements using the SystemVerilog logic keyword.
This is currently equivalent to:

    /*AUTOWIRE*/

with the below at the bottom of the file

    // Local Variables:
    // verilog-auto-wire-type:"logic"
    // End:

In the future AUTOLOGIC may declare additional identifiers,
while AUTOWIRE will not.
(defalias 'verilog-auto-logic #[0 "\212\300 \210\301 )\207" [verilog-auto-logic-setup verilog-auto-wire] 1 (#$ . 359307)])
#@1459 Expand AUTOWIRE statements, as part of \[verilog-auto].
Make wire statements for instantiations outputs that aren't
already declared.  `verilog-auto-wire-type' may be used to change
the datatype of the declarations.

Limitations:
  This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls'),
  and all buses must have widths, such as those from AUTOINST, or using []
  in AUTO_TEMPLATEs.

  This does NOT work on memories or SystemVerilog .name connections,
  declare those yourself.

  Verilog mode will add "Couldn't Merge" comments to signals it cannot
  determine how to bus together.  This occurs when you have ports with
  non-numeric or non-sequential bus subscripts.  If Verilog mode
  mis-guessed, you'll have to declare them yourself.

An example (see `verilog-auto-inst' for what else is going on here):

        module ExampWire (i);
           input i;
           /*AUTOWIRE*/
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampWire (i);
           input i;
           /*AUTOWIRE*/
           // Beginning of automatic wires
           wire [31:0]  o;      // From instName of InstModule.v
           // End of automatics
           InstModule instName
             (/*AUTOINST*/
              // Outputs
              .o        (o[31:0]),
              // Inputs
              .i        (i));
           wire o = | ov;
        endmodule
(defalias 'verilog-auto-wire #[0 "\212\300 \301 \211\302\303\"\262\302\304\"\262\305\306\307\211\310H\262\211\311H\262\"\312!\"!\211\205A\313 \210\314\315\"\210\316\317\320%\210\314\321\"\266\205)\207" [current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-combine-bus verilog-signals-not-in append 0 1 verilog-decls-get-signals verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic wires (for undeclared instantiated-module outputs)\n" verilog-insert-definition "wire" nil "// End of automatics\n"] 11 (#$ . 359809)])
#@1762 Expand AUTOOUTPUT statements, as part of \[verilog-auto].
Make output statements for any output signal from an /*AUTOINST*/ that
isn't an input to another AUTOINST.  This is useful for modules which
only instantiate other modules.

Limitations:
  This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls').

  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  If any concatenation, or bit-subscripts are missing in the AUTOINSTant's
  instantiation, all bets are off.  (For example due to an AUTO_TEMPLATE).

  Typedefs must match `verilog-typedef-regexp', which is disabled by default.

  Types are added to declarations if an AUTOLOGIC or
  `verilog-auto-wire-type' is set to logic.

  Signals matching `verilog-auto-output-ignore-regexp' are not included.

An example (see `verilog-auto-inst' for what else is going on here):

        module InstModule (output o);
        endmodule

        module ExampOutput
           (/*AUTOOUTPUT*/
           );
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampOutput
          (/*AUTOOUTPUT*/
           // Beginning of automatic outputs
           output          o    // From instName of InstModule.v
           // End of automatics
           );
          InstModule instName
            (/*AUTOINST*/
             // Outputs
             .o          (o));
        endmodule

You may also provide an optional regular expression, in which case only
signals matching the regular expression will be included.  For example the
same expansion will result from only extracting outputs starting with ov:

           /*AUTOOUTPUT("^ov")*/
(defalias 'verilog-auto-output #[0 "\212\301 \302\303\304\"\211@\305 \306 \211\307\310\"\262\307\311\"\262\312\211\303H\262\313\211\303H\262\211\304H\262\211\314H\262\211\314H\262\211\304H\262%\"\203Q\315\"\262\316\"\262\317 \210\203a\320 \210\211\203{\321\322\"\210\323\324	%\210\321\325\"\210\205\201\326 \266\210)\207" [verilog-auto-output-ignore-regexp current-indentation verilog-read-auto-params 0 1 verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in append 2 verilog-signals-matching-regexp verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic outputs (from unused autoinst outputs)\n" verilog-insert-definition "output" "// End of automatics\n" verilog-repair-close-comma] 17 (#$ . 361910)])
#@1327 Expand AUTOOUTPUTEVERY statements, as part of \[verilog-auto].
Make output statements for any signals that aren't primary inputs or
outputs already.  This makes every signal in the design an output.  This is
useful to get synthesis to preserve every signal in the design, since it
won't optimize away the outputs.

An example:

        module ExampOutputEvery (o,i,tempa,tempb);
           output o;
           input i;
           /*AUTOOUTPUTEVERY*/
           wire tempa = i;
           wire tempb = tempa;
           wire o = tempb;
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampOutputEvery (
           /*AUTOOUTPUTEVERY*/
           // Beginning of automatic outputs (every signal)
           output          o,
           output          tempa,
           output          tempb,
           // End of automatics
           input i
           );
           wire tempa = i;
           wire tempb = tempa;
           wire o = tempb;
        endmodule

You may also provide an optional regular expression, in which
case only signals matching the regular expression will be
included,or excluded if the regexp begins with ?! (question-mark
exclamation-mark).  For example the same expansion will result
from only extracting outputs starting with ov:

           /*AUTOOUTPUTEVERY("^ov")*/
(defalias 'verilog-auto-output-every #[0 "\212\301 \302\303\304\"\211@\305 \306 \211\307\310\"\262\311\312\313!\314!\"!\203)\315\"\262\316\"\262\317 \210\2039\320 \210\211\203S\321\322\"\210\323\324\n%\210\321\325\"\210\205Y\326 \266\207)\207" [verilog-auto-output-ignore-regexp current-indentation verilog-read-auto-params 0 1 verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-signals-combine-bus verilog-signals-not-in verilog-decls-get-signals verilog-decls-get-ports verilog-signals-matching-regexp verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic outputs (every signal)\n" verilog-insert-definition "output" "// End of automatics\n" verilog-repair-close-comma] 13 (#$ . 364597)])
#@1866 Expand AUTOINPUT statements, as part of \[verilog-auto].
Make input statements for any input signal into an /*AUTOINST*/ that
isn't declared elsewhere inside the module.  This is useful for modules which
only instantiate other modules.

Limitations:
  This ONLY detects inputs of AUTOINSTants (see `verilog-read-sub-decls').

  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  If any concatenation, or bit-subscripts are missing in the AUTOINSTant's
  instantiation, all bets are off.  (For example due to an AUTO_TEMPLATE).

  Typedefs must match `verilog-typedef-regexp', which is disabled by default.

  Types are added to declarations if an AUTOLOGIC or
  `verilog-auto-wire-type' is set to logic.

  Signals matching `verilog-auto-input-ignore-regexp' are not included.

An example (see `verilog-auto-inst' for what else is going on here):

        module InstModule (input i);
        endmodule

        module ExampInput (
           /*AUTOINPUT*/
           );
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInput (
           /*AUTOINPUT*/
           // Beginning of automatic inputs (from unused autoinst inputs)
           input           i       // To instName of InstModule.v
           // End of automatics
           );
           InstModule instName
             (/*AUTOINST*/
              // Inputs
              .i        (i));
        endmodule

You may also provide an optional regular expression, in which
case only signals matching the regular expression will be
included.  or excluded if the regexp begins with
?! (question-mark exclamation-mark).  For example the same
expansion will result from only extracting inputs starting with
i:

           /*AUTOINPUT("^i")*/
(defalias 'verilog-auto-input #[0 "\212\301 \302\303\304\"\211@\305 \306 \211\307\310\"\262\307\311\"\262\312\211\313H\262\314\211\313H\262\211\304H\262\211\303H\262\211\315H\262\211\316H\262	\211\317H\262	\211\320H\262\n\211\303H\262\211\304H\262&	\"\203n\321\"\262\322\"\262\323 \210\203~\324 \210\211\203\230\325\326\"\210\327\330	%\210\325\331\"\210\205\236\332 \266\210)\207" [verilog-auto-input-ignore-regexp current-indentation verilog-read-auto-params 0 1 verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in 2 append 3 6 7 4 verilog-signals-matching-regexp verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic inputs (from unused autoinst inputs)\n" verilog-insert-definition "input" "// End of automatics\n" verilog-repair-close-comma] 21 (#$ . 366785)])
#@1774 Expand AUTOINOUT statements, as part of \[verilog-auto].
Make inout statements for any inout signal in an /*AUTOINST*/ that
isn't declared elsewhere inside the module.

Limitations:
  This ONLY detects inouts of AUTOINSTants (see `verilog-read-sub-decls').

  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  If any concatenation, or bit-subscripts are missing in the AUTOINSTant's
  instantiation, all bets are off.  (For example due to an AUTO_TEMPLATE).

  Typedefs must match `verilog-typedef-regexp', which is disabled by default.

  Types are added to declarations if an AUTOLOGIC or
  `verilog-auto-wire-type' is set to logic.

  Signals matching `verilog-auto-inout-ignore-regexp' are not included.

An example (see `verilog-auto-inst' for what else is going on here):

        module InstModule (inout io);
        endmodule

        module ExampInout (
           /*AUTOINOUT*/
           );
           InstModule instName
             (/*AUTOINST*/);
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInout (
           /*AUTOINOUT*/
           // Beginning of automatic inouts
           inout           io      // To/From instName of InstModule.v
           // End of automatics
           );
           InstModule instName
             (/*AUTOINST*/
              // Inouts
              .io       (io));
        endmodule

You may also provide an optional regular expression, in which
case only signals matching the regular expression will be
included, or excluded if the regexp begins with ?! (question-mark
exclamation-mark).  For example the same expansion will result
from only extracting inouts starting with i:

           /*AUTOINOUT("^i")*/
(defalias 'verilog-auto-inout #[0 "\212\301 \302\303\304\"\211@\305 \306 \211\307\310\"\262\307\311\"\262\312\211\304H\262\313\211\303H\262\211\304H\262\211\314H\262\211\314H\262\211\303H\262%\"\203Q\315\"\262\316\"\262\317 \210\203a\320 \210\211\203{\321\322\"\210\323\324	%\210\321\325\"\210\205\201\326 \266\210)\207" [verilog-auto-inout-ignore-regexp current-indentation verilog-read-auto-params 0 1 verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in append 2 verilog-signals-matching-regexp verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic inouts (from unused autoinst inouts)\n" verilog-insert-definition "inout" "// End of automatics\n" verilog-repair-close-comma] 17 (#$ . 369648)])
#@2792 Expand AUTOINOUTMODULE statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified module and insert
into the current module.  This is useful for making null templates and
shell modules which need to have identical I/O with another module.
Any I/O which are already defined in this module will not be redefined.
For the complement of this function, see `verilog-auto-inout-comp',
and to make monitors with all inputs, see `verilog-auto-inout-in'.

Limitations:
  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  Concatenation and outputting partial buses is not supported.

  Module names must be resolvable to filenames.  See `verilog-auto-inst'.

  Signals are not inserted in the same order as in the original module,
  though they will appear to be in the same order to an AUTOINST
  instantiating either module.

  Signals declared as "output reg" or "output wire" etc will
  lose the wire/reg declaration so that shell modules may
  generate those outputs differently.  However, "output logic"
  is propagated.

An example:

        module ExampMain
          (input i,
           output o,
           inout io);
        endmodule

        module ExampShell (/*AUTOARG*/);
           /*AUTOINOUTMODULE("ExampMain")*/
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampShell (/*AUTOARG*/o, io, o);
           /*AUTOINOUTMODULE("ExampMain")*/
           // Beginning of automatic in/out/inouts
           output o;
           inout io;
           input i;
           // End of automatics
        endmodule

You may also provide an optional regular expression, in which
case only signals matching the regular expression will be
included, or excluded if the regexp begins with ?! (question-mark
exclamation-mark).  For example the same expansion will result
from only extracting signals starting with i:

           /*AUTOINOUTMODULE("ExampMain","^i")*/

You may also provide an optional third argument regular
expression, in which case only signals which have that pin
direction and data type matching that regular expression will be
included.  This matches against everything before the signal name
in the declaration, for example against "input" (single
bit), "output logic" (direction and type) or
"output [1:0]" (direction and implicit type).  You also
probably want to skip spaces in your regexp.

For example, the below will result in matching the output "o"
against the previous example's module:

           /*AUTOINOUTMODULE("ExampMain","","^output.*")*/

You may also provide an optional fourth argument regular
expression, which if not "" only signals which do NOT match
that expression are included.

(fn &optional COMPLEMENT ALL-IN)
(defalias 'verilog-auto-inout-module #[512 "\212\300\301\302\"\211@A@\3038\3048\305\306\307\"\211\262\205g\310 \311 \312 \211\313\314\"\262\313\314\"\262\315\f\203L\316\211\303H\262\211\301H\262\211\317H\262#\202`
\203Z\211\317H\262\202`\211\303H\262\316\211\303H\262!\"\315
\203s\305\202\207\203\201\211\303H\262\202\207\211\317H\262\316\211\317H\262!\"\315\203\232\305\202\240\211\301H\262\316\211\301H\262!\"\315\211\320H\262\316\211\320H\262!\"\301y\210\321\322\323\324\"\325#
\"!\262\321\322\323\324\"\326#
\"!\262\321\322\323\324\"\327#
\"!\262\322\323\324\"\330#\f\"\262\203\331 \210\204\204\204\211\203^\332	\333\"\210\334\326\f\f\307&\210\334\327\f\f\307&\210\334\325\f\f\307&\210\334\330\f\f\307&\210\332	\335\"\210\205e\336 \266\211\266\206)\207" [verilog-read-auto-params 1 4 2 3 nil verilog-modi-lookup t current-indentation verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-signals-not-in append 0 8 verilog-signals-edit-wire-reg verilog-signals-not-matching-regexp verilog-signals-matching-dir-re verilog-signals-matching-regexp "input" "output" "inout" "interface" verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic in/out/inouts (from specific module)\n" verilog-insert-definition "// End of automatics\n" verilog-repair-close-comma] 24 (#$ . 372342)])
#@2457 Expand AUTOINOUTCOMP statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified module and
insert the inverse into the current module (inputs become outputs
and vice-versa.)  This is useful for making test and stimulus
modules which need to have complementing I/O with another module.
Any I/O which are already defined in this module will not be
redefined.  For the complement of this function, see
`verilog-auto-inout-module'.

Limitations:
  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  Concatenation and outputting partial buses is not supported.

  Module names must be resolvable to filenames.  See `verilog-auto-inst'.

  Signals are not inserted in the same order as in the original module,
  though they will appear to be in the same order to an AUTOINST
  instantiating either module.

An example:

        module ExampMain
          (input i,
           output o,
           inout io);
        endmodule

        module ExampBench (/*AUTOARG*/);
           /*AUTOINOUTCOMP("ExampMain")*/
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampShell (/*AUTOARG*/i, io, o);
           /*AUTOINOUTCOMP("ExampMain")*/
           // Beginning of automatic in/out/inouts
           output i;
           inout io;
           input o;
           // End of automatics
        endmodule

You may also provide an optional regular expression, in which case only
signals matching the regular expression will be included.  For example the
same expansion will result from only extracting signals starting with i:

           /*AUTOINOUTCOMP("ExampMain","^i")*/

You may also provide an optional third argument regular
expression, in which case only signals which have that pin
direction and data type matching that regular expression will be
included.  This matches against everything before the signal name
in the declaration, for example against "input" (single
bit), "output logic" (direction and type)
or "output [1:0]" (direction and implicit type).  You also
probably want to skip spaces in your regexp.

For example, the below will result in matching the output "o"
against the previous example's module:

           /*AUTOINOUTCOMP("ExampMain","","^output.*")*/

You may also provide an optional fourth argument regular
expression, which if not "" only signals which do NOT match
that expression are included.
(defalias 'verilog-auto-inout-comp #[0 "\300\301\302\"\207" [verilog-auto-inout-module t nil] 3 (#$ . 376613)])
#@1704 Expand AUTOINOUTIN statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified module and
insert them as all inputs into the current module.  This is
useful for making monitor modules which need to see all signals
as inputs based on another module.  Any I/O which are already
defined in this module will not be redefined.  See also
`verilog-auto-inout-module'.

Limitations:
  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  Concatenation and outputting partial buses is not supported.

  Module names must be resolvable to filenames.  See `verilog-auto-inst'.

  Signals are not inserted in the same order as in the original module,
  though they will appear to be in the same order to an AUTOINST
  instantiating either module.

An example:

        module ExampMain
          (input i,
           output o,
           inout io);
        endmodule

        module ExampInoutIn (/*AUTOARG*/);
           /*AUTOINOUTIN("ExampMain")*/
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInoutIn (/*AUTOARG*/i, io, o);
           /*AUTOINOUTIN("ExampMain")*/
           // Beginning of automatic in/out/inouts
           input i;
           input io;
           input o;
           // End of automatics
        endmodule

You may also provide an optional regular expression, in which
case only signals matching the regular expression will be
included, or excluded if the regexp begins with ?! (question-mark
exclamation-mark).  For example the same expansion will result
from only extracting signals starting with i:

           /*AUTOINOUTIN("ExampMain","^i")*/
(defalias 'verilog-auto-inout-in #[0 "\300\301\302\"\207" [verilog-auto-inout-module nil t] 3 (#$ . 379189)])
#@1580 Expand AUTOINOUTPARAM statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified module and insert
into the current module.  This is useful for making null templates and
shell modules which need to have identical I/O with another module.
Any I/O which are already defined in this module will not be redefined.
For the complement of this function, see `verilog-auto-inout-comp',
and to make monitors with all inputs, see `verilog-auto-inout-in'.

Limitations:
  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  Module names must be resolvable to filenames.  See `verilog-auto-inst'.

  Parameters are inserted in the same order as in the original module.

  Parameters do not have values, which is SystemVerilog 2009 syntax.

An example:

        module ExampMain ();
          parameter PARAM = 22;
        endmodule

        module ExampInoutParam ();
           /*AUTOINOUTPARAM("ExampMain")*/
        endmodule

Typing \[verilog-auto] will make this into:

        module ExampInoutParam ();
           /*AUTOINOUTPARAM("ExampMain")*/
           // Beginning of automatic parameters (from specific module)
           parameter       PARAM;
           // End of automatics
        endmodule

You may also provide an optional regular expression, in which case only
parameters matching the regular expression will be included.  For example the
same expansion will result from only extracting parameters starting with i:

           /*AUTOINOUTPARAM("ExampMain","^i")*/
(defalias 'verilog-auto-inout-param #[0 "\212\300\301\302\"\211@A@\303\304\305\"\211\262\205n\306 \307 \310 \211\311\312\"\262\311\312\"\262\313\211\314H\262\315\211\314H\262!\"\301y\210\316	\"\262\203J\317 \210\211\203f\320\321\"\210\322\323		\305&\210\320\324\"\210\205l\325 \266\206\266\204)\207" [verilog-read-auto-params 1 2 nil verilog-modi-lookup t current-indentation verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-signals-not-in 7 append verilog-signals-matching-regexp verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic parameters (from specific module)\n" verilog-insert-definition "parameter" "// End of automatics\n" verilog-repair-close-comma] 17 (#$ . 381010)])
#@2212 Expand AUTOINOUTMODPORT statements, as part of \[verilog-auto].
Take input/output/inout statements from the specified interface
and modport and insert into the current module.  This is useful
for making verification modules that connect to UVM interfaces.

  The first parameter is the name of an interface.

  The second parameter is a regexp of modports to read from in
  that interface.

  The optional third parameter is a regular expression, and only
  signals matching the regular expression will be included.

  The optional fourth parameter is a prefix to add to the signals.

Limitations:
  If placed inside the parenthesis of a module declaration, it creates
  Verilog 2001 style, else uses Verilog 1995 style.

  Interface names must be resolvable to filenames.  See `verilog-auto-inst'.

As with other autos, any inputs/outputs declared in the module
will suppress the AUTO from redeclaring an inputs/outputs by
the same name.

An example:

        interface ExampIf
          ( input logic clk );
           logic        req_val;
           logic [7:0]  req_dat;
           clocking mon_clkblk @(posedge clk);
              input     req_val;
              input     req_dat;
           endclocking
           modport mp(clocking mon_clkblk);
        endinterface


        module ExampMain
        ( input clk,
          /*AUTOINOUTMODPORT("ExampIf", "mp")*/
        );

        ExampleIf i;

        /*AUTOASSIGNMODPORT("ExampIf", "mp", "i")*/

        endmodule

Typing \[verilog-auto] will make this into:

        module ExampMain
        ( input clk,
          /*AUTOINOUTMODPORT("ExampIf", "mp")*/
          // Beginning of automatic in/out/inouts (from modport)
          input        req_val,
          input [7:0]  req_dat
          // End of automatics
        );

        ExampleIf i;

        /*AUTOASSIGNMODPORT("ExampIf", "mp", "i")*/
        // Beginning of automatic assignments from modport
        assign i.req_dat = req_dat;
        assign i.req_val = req_val;
        // End of automatics

        endmodule

If the modport is part of a UVM monitor/driver class, this
creates a wrapper module that may be used to instantiate the
driver/monitor using AUTOINST in the testbench.
(defalias 'verilog-auto-inout-modport #[0 "\212\300\301\302\"\211@A@\3018\3038\304\305\306\"\211\262\205\307 \310 \311 \211\312\313\"\262\312\313\"\262\314\n\"\315\211\303H\262\316\211\301H\262\317!\"\"\315\211\303H\262\316\211\320H\262\317!\"\"\315\211\303H\262\316\211\321H\262\317!\"\"\321y\210\322\316\323\324\325\"\326\304#\"\317	!\"!\262\322\316\323\324\325\"\327\304#\"\317	!\"!\262\322\316\323\324\325\"\330\304#\"\317	!\"!\262\203\303\331 \210\204\317\204\317\211\203\332	\333\"\210\334\327\f\f\306&\210\334\330\f\f\306&\210\334\326\f\f\306&\210\332	\335\"\210\205	\336 \266\211\266\206)\207" [verilog-read-auto-params 2 4 3 nil verilog-modi-lookup t current-indentation verilog-in-paren-quick verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-modi-modport-lookup verilog-signals-in verilog-signals-not-in verilog-decls-get-ports 0 1 verilog-signals-edit-wire-reg verilog-signals-add-prefix verilog-signals-matching-dir-re verilog-signals-matching-regexp "input" "output" "inout" verilog-repair-open-comma verilog--insert-indent "// Beginning of automatic in/out/inouts (from modport)\n" verilog-insert-definition "// End of automatics\n" verilog-repair-close-comma] 22 (#$ . 383380)])
#@1511 Expand AUTOINSERTLISP statements, as part of \[verilog-auto].
The Lisp code provided is called before other AUTOS are expanded,
and the Lisp code generally will call `insert' to insert text
into the current file beginning on the line after the
AUTOINSERTLISP.

See also AUTOINSERTLAST and `verilog-auto-insert-last' which
executes after (as opposed to before) other AUTOs.

See also AUTO_LISP, which takes a Lisp expression and evaluates
it during `verilog-auto-inst' but does not insert any text.

An example:

        module ExampInsertLisp;
           /*AUTOINSERTLISP(my-verilog-insert-hello "world")*/
        endmodule

        // For this example we declare the function in the
        // module's file itself.  Often you'd define it instead
        // in a site-start.el or init file.
        /*
         Local Variables:
         eval:
           (defun my-verilog-insert-hello (who)
             (insert (concat "initial $write(\"hello " who "\");\n")))
         End:
        */

Typing \[verilog-auto] will call my-verilog-insert-hello and
expand the above into:

           /*AUTOINSERTLISP(my-verilog-insert-hello "world")*/
           // Beginning of automatic insert lisp
           initial $write("hello world");
           // End of automatics

You can also call an external program and insert the returned
text:

           /*AUTOINSERTLISP(insert (shell-command-to-string "echo //hello"))*/
           // Beginning of automatic insert lisp
           //hello
           // End of automatics
(defalias 'verilog-auto-insert-lisp #[0 "\212\301 \212\302\303!\210\304u\210`)\212\211b\210\305\306!\210`)\307\"\310 \210\311\312\"\210\311\313\"\210\314y\210\315\316!!\210\314y\210\304\317 \266\204)\207" [verilog-scan-cache-tick current-indentation search-backward ")" nil backward-sexp 1 buffer-substring-no-properties verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic insert lisp\n" "// End of automatics\n" -1 eval read verilog-delete-empty-auto-pair] 7 (#$ . 386907)])
#@515 Expand AUTOINSERTLAST statements, as part of \[verilog-auto].
The Lisp code provided is called after all other AUTOS have been
expanded, and the Lisp code generally will call `insert' to
insert text into the current file beginning on the line after the
AUTOINSERTLAST.

Other than when called (after AUTOs are expanded), the functionality
is otherwise identical to AUTOINSERTLISP and `verilog-auto-insert-lisp' which
executes before (as opposed to after) other AUTOs.

See `verilog-auto-insert-lisp' for examples.
(defalias 'verilog-auto-insert-last #[0 "\300 \207" [verilog-auto-insert-lisp] 1 (#$ . 388935)])
#@82 Return list of signals for current AUTOSENSE block.

(fn MODDECLS PRESENSE-SIGS)
(defalias 'verilog-auto-sense-sigs #[514 "\212\301\302!\210\303 )\304\305\211\306H\262\307?\205\211\310H\262?\205'\211\311H\262\211\312H\262	\211\313H\262\n\211\314H\262\n&\"!\207" [verilog-auto-sense-include-inputs search-forward ")" verilog-read-always-signals verilog-signals-not-params verilog-signals-not-in 3 append 0 1 2 6 7] 14 (#$ . 389552)])
#@2165 Expand AUTOSENSE statements, as part of \[verilog-auto].
Replace the always (/*AUTOSENSE*/) sensitivity list (/*AS*/ for short)
with one automatically derived from all inputs declared in the always
statement.  Signals that are generated within the same always block are NOT
placed into the sensitivity list (see `verilog-auto-sense-include-inputs').
Long lines are split based on the `fill-column', see \[set-fill-column].

Limitations:
  Verilog does not allow memories (multidimensional arrays) in sensitivity
  lists.  AUTOSENSE will thus exclude them, and add a /*memory or*/ comment.

Constant signals:
  AUTOSENSE cannot always determine if a \=`define is a constant or a signal
  (it could be in an include file for example).  If a \=`define or other signal
  is put into the AUTOSENSE list and is not desired, use the AUTO_CONSTANT
  declaration anywhere in the module (parenthesis are required):

        /* AUTO_CONSTANT( \=`this_is_really_constant_dont_autosense_it ) */

  Better yet, use a parameter, which will be understood to be constant
  automatically.

OOps!
  If AUTOSENSE makes a mistake, please report it.  (First try putting
  a begin/end after your always!) As a workaround, if a signal that
  shouldn't be in the sensitivity list was, use the AUTO_CONSTANT above.
  If a signal should be in the sensitivity list wasn't, placing it before
  the /*AUTOSENSE*/ comment will prevent it from being deleted when the
  autos are updated (or added if it occurs there already).

An example:

           always @ (/*AS*/) begin
              /*AUTO_CONSTANT(\=`constant) */
              outin = ina | inb | \=`constant;
              out = outin;
           end

Typing \[verilog-auto] will make this into:

           always @ (/*AS*/ina or inb) begin
              /*AUTO_CONSTANT(\=`constant) */
              outin = ina | inb | \=`constant;
              out = outin;
           end

Note in Verilog 2001, you can often get the same result from the new @*
operator.  (This was added to the language in part due to AUTOSENSE!)

           always @* begin
              outin = ina | inb | \=`constant;
              out = outin;
           end
(defalias 'verilog-auto-sense #[0 "\212\212\301\302\303\302\211\204)\304#\203)\305\306\224!\203\"\304\307\302\303#\210\202\306\224\262\202\266`)\212\211b\2038iT\206:\310 )\311 \211\312\313\"\262\314\211\315H\262!\302\211\211\316\212\317	`\")!\262\320\"\262\203yG\321\"\262\211G=\204x\322\323!\210\210\211\203<\212`b\210\324\303\302\211\204\251\304#\203\251\305\306\224!\203\242\304\307\302\303#\210\202\206\306\224\262\202\206\266\325\303\302\211\204\323\304#\203\323\305\306\224!\203\314\304\307\302\303#\210\202\260\306\224\262\202\260\266\326\327!\2032\324\303\302\211\204\304#\203\305\306\224!\203\374\304\307\302\303#\210\202\340\306\224\262\202\340\266\325\303\302\211\204-\304#\203-\305\306\224!\203&\304\307\302\303#\210\202\n\306\224\262\202\n\266\202\325\326\330!)\204<\303\262\331\332\"\262\205\200\333i\\@\211@\262G\\V\203g\334c\210j\210\203n\335c\210\202n\203n\336c\210@\211@\262c\210A\262\303\262\202B\266\210)\207" [fill-column "(" nil t re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-signals-memory 3 verilog-signals-from-signame verilog-read-signals verilog-auto-sense-sigs verilog-signals-not-in verilog-insert " /*memory or*/ " "[a-zA-Z0-9$_.%`]+" "\\s-" looking-at "\\s-`endif" "\\s-or\\b" sort verilog-signals-sort-compare 4 "\n" "or " " or "] 16 (#$ . 390013)])
#@2158 Expand AUTORESET statements, as part of \[verilog-auto].
Replace the /*AUTORESET*/ comment with code to initialize all
registers set elsewhere in the always block.

Limitations:
  AUTORESET will not clear memories.

  AUTORESET uses <= if the signal has a <= assignment in the block,
  else it uses =.

  If <= is used, all = assigned variables are ignored if
  `verilog-auto-reset-blocking-in-non' is nil; they are presumed
  to be temporaries.

/*AUTORESET*/ presumes that any signals mentioned between the previous
begin/case/if statement and the AUTORESET comment are being reset manually
and should not be automatically reset.  This includes omitting any signals
used on the right hand side of assignments.

By default, AUTORESET will include the width of the signal in the
autos, SystemVerilog designs may want to change this.  To control
this behavior, see `verilog-auto-reset-widths'.  In some cases
AUTORESET must use a \='0 assignment and it will print NOWIDTH; use
`verilog-auto-reset-widths' unbased to prevent this.

AUTORESET ties signals to deasserted, which is presumed to be zero.
Signals that match `verilog-active-low-regexp' will be deasserted by tying
them to a one.

AUTORESET may try to reset arrays or structures that cannot be
reset by a simple assignment, resulting in compile errors.  This
is a feature to be taken as a hint that you need to reset these
signals manually (or put them into a "\=`ifdef NEVER signal<=\='0;
\=`endif" so Verilog-Mode ignores them.)

An example:

        module ExampReset ();
           always @(posedge clk or negedge reset_l) begin
              if (!reset_l) begin
                  c <= 1;
                  /*AUTORESET*/
              end
              else begin
                  a <= in_a;
                  b <= in_b;
                  c <= in_c;
              end
           end
        endmodule

Typing \[verilog-auto] will make this into:

        ...
                  c <= 1;
                  /*AUTORESET*/
                  // Beginning of autoreset for uninitialized flops
                  a <= 1'h0;
                  b <= 1'h0;
                  // End of automatics
        ...
(defalias 'verilog-auto-reset #[0 "\212\302 \303 \211\304\305\"\262\306!\307\211\211\211\310\212\311\212\312\307\313\307\211\204>\314#\203>\315\316\224!\2037\314\317\307\313#\210\202\316\224\262\202\266`)`\")!\262\212\320\307\313\307\211\204p\314#\203p\315\316\224!\203i\314\317\307\313#\210\202M\316\224\262\202M\266\321 \262)\211\316H\262\262\322\323\211\316H\262\211\316H\262\203\225\205\234\211\324H\262\"\323\211\325H\262\"\"\262\326\327\"\262\205\377\330c\210\331\332\"\210\203\372\333@\211@\262\"\206\320@j\210\211\211@\262\333\211@\262\"\203\352\334	P\202\353\335\336!\337\261\210A\262\210\202\275\331\340\"\266\210)\207" [verilog-auto-reset-blocking-in-non verilog-assignment-delay current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-decls-get-signals nil verilog-signals-from-signame verilog-read-signals "\\(@\\|\\<\\(begin\\|if\\|case[xz]?\\|always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" t re-search-backward verilog-inside-comment-or-string-p 0 "[/\"]" "\\(@\\|\\<\\(always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" verilog-read-always-signals verilog-signals-not-in-struct append 1 2 sort verilog-signals-sort-compare "\n" verilog--insert-indent "// Beginning of autoreset for uninitialized flops\n" assoc " <= " " = " verilog-sig-tieoff ";\n" "// End of automatics"] 18 (#$ . 393689) nil])
#@1722 Expand AUTOTIEOFF statements, as part of \[verilog-auto].
Replace the /*AUTOTIEOFF*/ comment with code to wire-tie all unused output
signals to deasserted.

/*AUTOTIEOFF*/ is used to make stub modules; modules that have
the same input/output list as another module, but no internals.
Specifically, it finds all outputs in the module, and if that
input is not otherwise declared as a register or wire, nor comes
from a AUTOINST submodule's output, creates a tieoff.  AUTOTIEOFF
does not examine assignments to determine what is already driven.

AUTORESET ties signals to deasserted, which is presumed to be zero.
Signals that match `verilog-active-low-regexp' will be deasserted by tying
them to a one.

You can add signals you do not want included in AUTOTIEOFF with
`verilog-auto-tieoff-ignore-regexp'.

`verilog-auto-wire-type' may be used to change the datatype of
the declarations.

`verilog-auto-reset-widths' may be used to change how the tieoff
value's width is generated.

An example of making a stub for another module:

        module ExampMain
          #(parameter P)
          (input i, output o, inout io);
        endmodule

        module ExampStub (/*AUTOARG*/);
            /*AUTOINOUTPARAM("ExampMain")*/
            /*AUTOINOUTMODULE("ExampMain")*/

            /*AUTOTIEOFF*/

            // verilator lint_off UNUSED
            wire _unused_ok = &{1\='b0,
                                /*AUTOUNUSED*/
                                1\='b0};
            // verilator lint_on  UNUSED
        endmodule

Typing \[verilog-auto] will make this into:

        ...
        /*AUTOTIEOFF*/
        // Beginning of automatic tieoffs
        wire [2:0] o = 3\='b0;
        // End of automatics
        ...
(defalias 'verilog-auto-tieoff #[0 "\212\302 \303 \211\304\305\"\262\304\306\"\262\307\211\310H\262\311\211\312H\262\211\313H\262\211\314H\262\211\315H\262\211\316H\262\211\310H\262	\211\317H\262&\"\320\"\262\211\205\256\321 \210\322\323\"\210\324\325!\326\"\262\327\305\312$\266\211\203\252\211@	\330\232\203\214j\210\331\211@\262\261\210\202\223\332	#\210\333\334\\]j\210\335\336!\337\261\210A\266\202\202q\322\340\"\266\205)\207" [verilog-auto-tieoff-ignore-regexp verilog-auto-tieoff-declaration current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in 0 append 3 5 6 7 4 1 verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic tieoffs (for this module's unterminated outputs)\n" sort copy-alist verilog-signals-sort-compare verilog-modi-cache-add "assign" "assign " verilog-insert-one-definition 48 40 "= " verilog-sig-tieoff ";\n" "// End of automatics\n"] 16 (#$ . 397270) nil])
#@1127 Expand AUTOUNDEF statements, as part of \[verilog-auto].
Take any \=`defines since the last AUTOUNDEF in the current file
and create \=`undefs for them.  This is used to insure that
file-local defines do not pollute the global \=`define name space.

Limitations:
  AUTOUNDEF presumes any identifier following \=`define is the
  name of a define.  Any \=`ifdefs are ignored.

  AUTOUNDEF suppresses creating an \=`undef for any define that was
  \=`undefed before the AUTOUNDEF.  This may be used to work around
  the ignoring of \=`ifdefs as shown below.

An example:

        \=`define XX_FOO
        \=`define M_BAR(x)
        \=`define M_BAZ
        ...
        \=`ifdef NEVER
          \=`undef M_BAZ       // Emacs will see this and not \=`undef M_BAZ
        \=`endif
        ...
        /*AUTOUNDEF*/

Typing \[verilog-auto] will make this into:

        ...
        /*AUTOUNDEF*/
        // Beginning of automatic undefs
        \=`undef M_BAR
        \=`undef XX_FOO
        // End of automatics

You may also provide an optional regular expression, in which case only
defines the regular expression will be undefed.
(defalias 'verilog-auto-undef #[0 "\212\300\301\302\"\211@\303 `\304\211\212\305\306\304\211\2044\307#\2034\310\301\224!\203-\307\311\304\306#\210\202\301\224\262\202\266\203\204<eb\210\312\306\304\211\204c\313#\203c\310\301\224!\203\\\313\314\304\306#\210\202@\301\225\262\202@\266\203\203\231\315\302!\316\232\203\216\315\317!\262\203\200\320\"\203<\211\235\204<\211B\262\202<\321\315\317!\"\262\202<)\322\323\"\262\205\303\324 \210\325\326\"\210\203\277\325\327@\330$\210A\262\202\254\325\331\"\266\206)\207" [verilog-read-auto-params 0 1 current-indentation nil "/\\*AUTOUNDEF\\>" t re-search-backward verilog-inside-comment-or-string-p "[/\"]" "`\\(define\\|undef\\)\\s-*\\([a-zA-Z_][a-zA-Z_0-9]*\\)" re-search-forward "[/\"\n]" match-string-no-properties "define" 2 string-match delete sort string< verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic undefs\n" "`undef " "\n" "// End of automatics\n"] 14 (#$ . 400079)])
#@2213 Expand AUTOUNUSED statements, as part of \[verilog-auto].
Replace the /*AUTOUNUSED*/ comment with a comma separated list of all unused
input and inout signals.

/*AUTOUNUSED*/ is used to make stub modules; modules that have the same
input/output list as another module, but no internals.  Specifically, it
finds all inputs and inouts in the module, and if that input is not otherwise
used, adds it to a comma separated list.

The comma separated list is intended to be used to create a _unused_ok
signal.  Using the exact name "_unused_ok" for name of the temporary
signal is recommended as it will insure maximum forward compatibility, it
also makes lint warnings easy to understand; ignore any unused warnings
with "unused" in the signal name.

To reduce simulation time, the _unused_ok signal should be forced to a
constant to prevent wiggling.  The easiest thing to do is use a
reduction-and with 1\='b0 as shown.

This way all unused signals are in one place, making it convenient to add
your tool's specific pragmas around the assignment to disable any unused
warnings.

You can add signals you do not want included in AUTOUNUSED with
`verilog-auto-unused-ignore-regexp'.

An example of making a stub for another module:

        module ExampMain
          (input unused_input_a, input unused_input_b);
        endmodule

        module ExampStub2 (/*AUTOARG*/);
            /*AUTOINOUTPARAM("ExampMain")*/
            /*AUTOINOUTMODULE("ExampMain")*/

            /*AUTOTIEOFF*/

            // verilator lint_off UNUSED
            wire _unused_ok = &{1\='b0,
                                /*AUTOUNUSED*/
                                1\='b0};
            // verilator lint_on  UNUSED
        endmodule

Typing \[verilog-auto] will make this into:

            ...
            // verilator lint_off UNUSED
            wire _unused_ok = &{1\='b0,
                                /*AUTOUNUSED*/
                                // Beginning of automatics
                                unused_input_a,
                                unused_input_b
                                // End of automatics
                                1\='b0};
            // verilator lint_on  UNUSED
        endmodule
(defalias 'verilog-auto-unused #[0 "\212\301\302!\210i\303 \211\304\305\"\262\304\306\"\262\307\310\211\311H\262\211\312H\262\"\310\211\311H\262\211\312H\262\"\"\313\"\262\211\205k\314 \210\315\316\"\210\317\320!\321\"\262\211\203g\211@j\210\211\211@\262\322\261\210A\266\202\202N\315\323\"\266\205)\207" [verilog-auto-unused-ignore-regexp search-backward "/*" verilog-modi-current verilog-modi-cache-results verilog-read-decls verilog-read-sub-decls verilog-signals-not-in append 2 1 verilog-signals-not-matching-regexp verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic unused inputs\n" sort copy-alist verilog-signals-sort-compare ",\n" "// End of automatics\n"] 11 (#$ . 402221) nil])
#@127 Convert an enum name SIGNM to an ascii string for insertion.
Remove user provided prefix ELIM-REGEXP.

(fn SIGNM ELIM-REGEXP)
(defalias 'verilog-enum-ascii #[514 "\211\204\301\262\302\211\303\304\211\305\306#\203.\307$\262G\305\224G\\^\262\202\266\206\227)\207" [case-fold-search "_ DONT MATCH IT_" t "" nil 0 string-match replace-match] 13 (#$ . 405186)])
#@2543 Expand AUTOASCIIENUM statements, as part of \[verilog-auto].
Create a register to contain the ASCII decode of an enumerated signal type.
This will allow trace viewers to show the ASCII name of states.

First, parameters are built into an enumeration using the synopsys enum
comment.  The comment must be between the keyword and the symbol.
(Annoying, but that's what Synopsys's dc_shell FSM reader requires.)

Next, registers which that enum applies to are also tagged with the same
enum.

Finally, an AUTOASCIIENUM command is used.

  The first parameter is the name of the signal to be decoded.

  The second parameter is the name to store the ASCII code into.  For the
  signal foo, I suggest the name _foo__ascii, where the leading _ indicates
  a signal that is just for simulation, and the magic characters _ascii
  tell viewers like Dinotrace to display in ASCII format.

  The third optional parameter is a string which will be removed
  from the state names.  It defaults to "" which removes nothing.

  The fourth optional parameter is "onehot" to force one-hot
  decoding.  If unspecified, if and only if the first parameter
  width is 2^(number of states in enum) and does NOT match the
  width of the enum, the signal is assumed to be a one-hot
  decode.  Otherwise, it's a normal encoded state vector.

  `verilog-auto-wire-type' may be used to change the datatype of
  the declarations.

  "synopsys enum" may be used in place of "auto enum".

An example:

        //== State enumeration
        parameter [2:0] // auto enum state_info
                           SM_IDLE =  3\='b000,
                           SM_SEND =  3\='b001,
                           SM_WAIT1 = 3\='b010;
        //== State variables
        reg [2:0]  /* auto enum state_info */
                   state_r;  /* auto state_vector state_r */
        reg [2:0]  /* auto enum state_info */
                   state_e1;

        /*AUTOASCIIENUM("state_r", "state_ascii_r", "SM_")*/

Typing \[verilog-auto] will make this into:

        ...
        /*AUTOASCIIENUM("state_r", "state_ascii_r", "SM_")*/
        // Beginning of automatic ASCII enum decoding
        reg [39:0]              state_ascii_r;          // Decode of state_r
        always @(state_r) begin
           case ({state_r})
                SM_IDLE:  state_ascii_r = "idle ";
                SM_SEND:  state_ascii_r = "send ";
                SM_WAIT1: state_ascii_r = "wait1";
                default:  state_ascii_r = "%Erro";
           endcase
        end
        // End of automatics
(defalias 'verilog-auto-ascii-enum #[0 "\212\302\303\304\"\211@A@\3038\205\3038\305\232?\205\3038\3068\307 \310 \211\311\312\"\262\313\211\314H\262\211\315H\262\"\316!\317	\"\206J\320\321\322 #\211\3048\262\206Z\320\323\322 \f#\324\325\"\206h\320\326\322 #\327\"\330\331\n\206r\305\"\206\254\211@\211A@\262\203\234\211@\332\211A@\262!\262\332\211A@\262!\262\232?\205\254\333G!\332\211A@\262!\262\232\334\211\211\203\324@\211@\262G]\262\335@\211@\262\"G]\262\211A\262\202\257\210\336 \210\337\340\"\210
\341\342\343_S\"\344P\327\211\257C\345\346\327%\266\337\347\350$\210\n\\\262\337\351\352$\210\n	\\\262\341\353\203$\354\202%\355\343]\\$\356\334\314^O\203z\337\341	\205C\357\n\205M\333\fG!\205S\360	@\211@\262
\205`\361\362\260\335@\211@\262\"#\260\"\210A\262\2024\337\341\363#\"\266\n	Z\262\337\364\"\210\nZ\262\337\365\366#\266\220)\207" [verilog-indent-level verilog-case-indent verilog-read-auto-params 2 4 "" 3 current-indentation verilog-modi-current verilog-modi-cache-results verilog-read-decls append 6 7 verilog-decls-get-iovars assoc error "%s: Signal `%s' not found in design" verilog-point-text "%s: Signal `%s' does not have an enum tag" verilog-signals-not-in verilog-signals-matching-enum "%s: No state definitions for `%s'" nil string-match "onehot" verilog-make-width-expression number-to-string 0 verilog-enum-ascii verilog-forward-or-insert-line verilog--insert-indent "// Beginning of automatic ASCII enum decoding\n" format "[%d:0]" 8 "Decode of " verilog-insert-definition "reg" "always @(" ") begin\n" "case ({" "})\n" "%%-%ds %s = \"%%-%ds\";\n" 9 1 "%Error" "(" "'b1<<" ")" ":" "default:" "endcase\n" "end\n" "// End of automatics\n"] 29 (#$ . 405573)])
#@202 Replace Templated relative line numbers with absolute line numbers.
Internal use only.  This hacks around the line numbers in AUTOINST Templates
being different from the final output's line numbering.
(defalias 'verilog-auto-templated-rel #[0 "\300\211C\301eb\210m\204$\302\303!\203T\262\211B\262\211T\262\301y\210\202\237\262eb\210\304\305\306\307#\205L\310\311\312\313\314\301!!8\313\314\315!!\\!P\307\211#\210\202+\207" [0 1 looking-at ".*AUTO_TEMPLATE" re-search-forward " Templated T\\([0-9]+\\) L\\([0-9]+\\)" nil t replace-match " Templated " int-to-string string-to-number match-string-no-properties 2] 10 (#$ . 409941)])
#@89 Check AUTO_TEMPLATEs for unused lines.
Enable with `verilog-auto-template-warn-unused'.
(defalias 'verilog-auto-template-lint #[0 "\301 \206\302 \212eb\210\303\304\305\306#\205Z\307 \211\310H\311@A@\"\305\203U@\262A\262\203 \312\313\3148\3158\"\"\204 \316\317\315\234\320e`\"\\\321\234\310\234%\210\202 \266\202)\207" [verilog-auto-template-hits buffer-file-name buffer-name re-search-forward "^\\s-*/?\\*?\\s-*[a-zA-Z0-9`_$]+\\s-+AUTO_TEMPLATE" nil t verilog-read-auto-template-middle 1 append gethash vector 2 3 verilog-warn-error "%s:%d: AUTO_TEMPLATE line unused: \".%s (%s)\"" count-lines 0] 12 (#$ . 410592)])
#@3573 Expand AUTO statements.
Look for any /*AUTO...*/ commands in the code, as used in
instantiations or argument headers.  Update the list of signals
following the /*AUTO...*/ command.

Use \[verilog-delete-auto] to remove the AUTOs.

Use \[verilog-diff-auto] to see differences in AUTO expansion.

Use \[verilog-inject-auto] to insert AUTOs for the first time.

Use \[verilog-faq] for a pointer to frequently asked questions.

For new users, we recommend setting `verilog-case-fold' to nil
and `verilog-auto-arg-sort' to t.

The hooks `verilog-before-auto-hook' and `verilog-auto-hook' are
called before and after this function, respectively.

For example:
        module ExampModule (/*AUTOARG*/);
            /*AUTOINPUT*/
            /*AUTOOUTPUT*/
            /*AUTOWIRE*/
            /*AUTOREG*/
            InstMod instName #(/*AUTOINSTPARAM*/) (/*AUTOINST*/);
        endmodule

You can also update the AUTOs from the shell using:
        emacs --batch  <filenames.v>  -f verilog-batch-auto
Or fix indentation with:
        emacs --batch  <filenames.v>  -f verilog-batch-indent
Likewise, you can delete or inject AUTOs with:
        emacs --batch  <filenames.v>  -f verilog-batch-delete-auto
        emacs --batch  <filenames.v>  -f verilog-batch-inject-auto
Or check if AUTOs have the same expansion
        emacs --batch  <filenames.v>  -f verilog-batch-diff-auto

Using \[describe-function], see also:
    `verilog-auto-arg'          for AUTOARG module instantiations
    `verilog-auto-ascii-enum'   for AUTOASCIIENUM enumeration decoding
    `verilog-auto-assign-modport' for AUTOASSIGNMODPORT assignment to/from modport
    `verilog-auto-inout'        for AUTOINOUT making hierarchy inouts
    `verilog-auto-inout-comp'   for AUTOINOUTCOMP copy complemented i/o
    `verilog-auto-inout-in'     for AUTOINOUTIN inputs for all i/o
    `verilog-auto-inout-modport'  for AUTOINOUTMODPORT i/o from an interface modport
    `verilog-auto-inout-module' for AUTOINOUTMODULE copying i/o from elsewhere
    `verilog-auto-inout-param'  for AUTOINOUTPARAM copying params from elsewhere
    `verilog-auto-input'        for AUTOINPUT making hierarchy inputs
    `verilog-auto-insert-lisp'  for AUTOINSERTLISP insert code from lisp function
    `verilog-auto-insert-last'  for AUTOINSERTLAST insert code from lisp function
    `verilog-auto-inst'         for AUTOINST instantiation pins
    `verilog-auto-star'         for AUTOINST .* SystemVerilog pins
    `verilog-auto-inst-param'   for AUTOINSTPARAM instantiation params
    `verilog-auto-logic'        for AUTOLOGIC declaring logic signals
    `verilog-auto-output'       for AUTOOUTPUT making hierarchy outputs
    `verilog-auto-output-every' for AUTOOUTPUTEVERY making all outputs
    `verilog-auto-reg'          for AUTOREG registers
    `verilog-auto-reg-input'    for AUTOREGINPUT instantiation registers
    `verilog-auto-reset'        for AUTORESET flop resets
    `verilog-auto-sense'        for AUTOSENSE or AS always sensitivity lists
    `verilog-auto-tieoff'       for AUTOTIEOFF output tieoffs
    `verilog-auto-undef'        for AUTOUNDEF \=`undef of local \=`defines
    `verilog-auto-unused'       for AUTOUNUSED unused inputs/inouts
    `verilog-auto-wire'         for AUTOWIRE instantiation wires

    `verilog-read-defines'      for reading \=`define values
    `verilog-read-includes'     for reading \=`includes

If you have bugs with these autos, please file an issue at
URL `https://www.veripool.org/verilog-mode' or contact the AUTOAUTHOR
Wilson Snyder (wsnyder@wsnyder.org).

(fn &optional INJECT)
(defalias 'verilog-auto #[256 "\204\306\307!\210\310\311!\203\311 \210	\203\230\312 ?\205\313 \n\314\211e\315@A\316 \2041\315BpC\212\315D\317 \210E\320=\204E\320 \210\314F\321\322!\210)\323 \210\324 \210\325ed\"\210\326 \210p\315\211GH@I\203r\327 \210\330\315\211\314#\210\331\332\333\"\210\334 pJK\335 \210\203\216\336 \210\337 \210\340 \210\331\341\342\"\210\331\343\344\"\210\331\345\346\"\210\331\347\350\"\210\331\351\352\"\210\331\353\354\"\210\331\355\356\"\210\331\357\360\"\210\331\361\362\"\210\331\363\364\"\210\331\365\366\"\210\331\367\370\"\210\331\371\372\"\210\331\373\374\"\210\331\375\376\"\210\331\377\201V\"\210\331\332\201W\"\210\331\201X\201Y\"\210\331\201Z\201[\"\210\331\201\\\201]\"\210\331\201^\201_\"\210\331\201`\201a\"\210\331\201b\201c\"\210\331\201d\201e\"\210\331\201f\201g\"\210\331\201h\201i\"\210L\203B\201j \210M\203L\201k \210-\314F\321\201l!\210)N\203a\201m \210\201n\201O!\210\334 O\211\203\213\211\313 \232\203\213\201o\315!\210?\205\225\306\201p!\202\225?\205\225\306\201q!.\207\314F\321\201r!\210)deZP\205\264\201P\201s!\210\314\201t\201Ted#\210\201u\201v\"\216\314\211QR\314S\315\211TU\312 ?\205\336\313 \n\314\211e\315@A\316 \204\362\315BpC\212\315D\317 \210E\320=\204\320 \210\314F\321\322!\210)\323 \210\324 \210\325ed\"\210\326 \210p\315\211GH@I\2033\327 \210\330\315\211\314#\210\331\332\333\"\210\334 pJK\335 \210\203O\336 \210\337 \210\340 \210\331\341\342\"\210\331\343\344\"\210\331\345\346\"\210\331\347\350\"\210\331\351\352\"\210\331\353\354\"\210\331\355\356\"\210\331\357\360\"\210\331\361\362\"\210\331\363\364\"\210\331\365\366\"\210\331\367\370\"\210\331\371\372\"\210\331\373\374\"\210\331\375\376\"\210\331\377\201V\"\210\331\332\201W\"\210\331\201X\201Y\"\210\331\201Z\201[\"\210\331\201\\\201]\"\210\331\201^\201_\"\210\331\201`\201a\"\210\331\201b\201c\"\210\331\201d\201e\"\210\331\201f\201g\"\210\331\201h\201i\"\210L\203\201j \210M\203
\201k \210-\314F\321\201l!\210)N\203\"\201m \210\201n\201O!\210\334 O\211\203L\211\313 \232\203L\201o\315!\210?\205V\306\201p!\202V?\205V\306\201q!.\262.\207" [noninteractive verilog-save-font-mod-hooked verilog-case-fold verilog-modi-cache-current verilog-modi-cache-current-max verilog-modi-cache-current-enable message "Updating AUTOs..." fboundp dinotrace-unannotate-all buffer-modified-p buffer-string t nil verilog-scan-cache-ok-p verilog-read-auto-template-init verilog-mode run-hooks verilog-before-auto-hook verilog-auto-reeval-locals verilog-read-auto-lisp-present verilog-read-auto-lisp verilog-getopt-flags verilog-read-includes verilog-read-defines verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" verilog-auto-logic-setup buffer-chars-modified-tick verilog-delete-auto-buffer verilog-inject-inst verilog-inject-sense verilog-inject-arg "/\\*AUTOINSERTLISP(.*?)\\*/" verilog-auto-insert-lisp "/\\*AUTOINSTPARAM\\((.*?)\\)?\\*/" verilog-auto-inst-param "/\\*AUTOINST\\((.*?)\\)?\\*/" verilog-auto-inst "\\.\\*" verilog-auto-star "/\\*AUTOASCIIENUM(.*?)\\*/" verilog-auto-ascii-enum "/\\*AUTOINOUTMODPORT(.*?)\\*/" verilog-auto-inout-modport "/\\*AUTOINOUTMODULE(.*?)\\*/" verilog-auto-inout-module "/\\*AUTOINOUTCOMP(.*?)\\*/" verilog-auto-inout-comp "/\\*AUTOINOUTIN(.*?)\\*/" verilog-auto-inout-in "/\\*AUTOINOUTPARAM(.*?)\\*/" verilog-auto-inout-param "/\\*AUTOOUTPUT\\((.*?)\\)?\\*/" verilog-auto-output "/\\*AUTOINPUT\\((.*?)\\)?\\*/" verilog-auto-input "/\\*AUTOINOUT\\((.*?)\\)?\\*/" verilog-auto-inout "/\\*AUTOTIEOFF\\*/" verilog-auto-tieoff "/\\*AUTOUNDEF\\((.*?)\\)?\\*/" verilog-auto-undef "/\\*AUTOASSIGNMODPORT(.*?)\\*/" verilog-dir-cache-preserving case-fold-search verilog-scan-cache-tick verilog-scan-cache-preserving verilog-modi-cache-list major-mode verilog-in-hooks verilog-dir-cache-lib-filenames verilog-dir-cache-list verilog-auto-read-includes verilog-modi-cache-preserve-buffer verilog-modi-cache-preserve-tick verilog-auto-inst-template-numbers verilog-auto-template-warn-unused verilog-auto-delete-trailing-whitespace verilog-auto-update-tick font-lock-mode inhibit-point-motion-hooks inhibit-modification-hooks verilog-no-change-functions before-change-functions after-change-functions verilog-auto-assign-modport verilog-auto-logic "/\\*AUTOWIRE\\*/" verilog-auto-wire "/\\*AUTOREG\\*/" verilog-auto-reg "/\\*AUTOREGINPUT\\*/" verilog-auto-reg-input "/\\*AUTOOUTPUTEVERY\\((.*?)\\)?\\*/" verilog-auto-output-every "/\\*\\(AUTOSENSE\\|AS\\)\\*/" verilog-auto-sense "/\\*AUTORESET\\*/" verilog-auto-reset "/\\*AUTOUNUSED\\*/" verilog-auto-unused "/\\*AUTOARG\\*/" verilog-auto-arg "/\\*AUTOINSERTLAST(.*?)\\*/" verilog-auto-insert-last verilog-auto-templated-rel verilog-auto-template-lint verilog-auto-hook verilog-delete-trailing-whitespace make-local-variable verilog-restore-buffer-modified-p "Updating AUTOs...done (no changes)" "Updating AUTOs...done" verilog-before-save-font-hook 0 run-hook-with-args make-closure #[0 "\303\304ed	$\210\300\203\305\306!\210\306\307\310!)\207" [V0 verilog-save-font-mod-hooked verilog-in-hooks run-hook-with-args after-change-functions font-lock-mode t run-hooks verilog-after-save-font-hook] 5]] 9 (#$ . 411242) nil])
#@60 Keymap used in Verilog mode for smart template operations.
(defvar verilog-template-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\345#\210\301\346\347#\210\301\350\351#\210\301\352\353#\210\301\354\355#\210\301\356\357#\210\301\360\361#\210\301\362\363#\210\301\364\365#\210\301\366\367#\210\301\370\371#\210\301\372\373#\210\301\374\375#\210\301\376\377#\210\207" [make-sparse-keymap define-key "a" verilog-sk-always "b" verilog-sk-begin "c" verilog-sk-case "f" verilog-sk-for "g" verilog-sk-generate "h" verilog-sk-header "i" verilog-sk-initial "j" verilog-sk-fork "m" verilog-sk-module "o" verilog-sk-ovm-class "p" verilog-sk-primitive "r" verilog-sk-repeat "s" verilog-sk-specify "t" verilog-sk-task "u" verilog-sk-uvm-object "w" verilog-sk-while "x" verilog-sk-casex "z" verilog-sk-casez "?" verilog-sk-if ":" verilog-sk-else-if "/" verilog-sk-comment "A" verilog-sk-assign "F" verilog-sk-function "I" verilog-sk-input "O" verilog-sk-output "S" verilog-sk-state-machine "=" verilog-sk-inout "U" verilog-sk-uvm-component "W" verilog-sk-wire "R" verilog-sk-reg "D" verilog-sk-define-signal] 5) (#$ . 420085))
(byte-code "\302\303	#\210\304\305\306\307#\207" [verilog-mode-map verilog-template-map define-key "" put verilog-sk-prompt-condition no-self-insert t] 4)
#@559 Prompt for the loop condition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-condition #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[condition]: " str) t] 11 (#$ . 421666) "*P\nP"])
(put 'verilog-sk-prompt-init 'no-self-insert t)
#@564 Prompt for the loop init statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-init #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[initial statement]: " str) t] 11 (#$ . 422706) "*P\nP"])
(put 'verilog-sk-prompt-inc 'no-self-insert t)
#@569 Prompt for the loop increment statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-inc #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[increment statement]: " str) t] 11 (#$ . 423753) "*P\nP"])
(put 'verilog-sk-prompt-name 'no-self-insert t)
#@562 Prompt for the name of something.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-name #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[name]: " str) t] 11 (#$ . 424807) "*P\nP"])
(put 'verilog-sk-prompt-clock 'no-self-insert t)
#@562 Prompt for the name of something.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-clock #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("name and edge of clock(s): " str) t] 11 (#$ . 425841) "*P\nP"])
(defvar verilog-sk-reset nil)
#@47 Prompt for the name of a state machine reset.
(defalias 'verilog-sk-prompt-reset #[0 "\301\302\303\"\211\207" [verilog-sk-reset read-string "name of reset: " "rst"] 3 (#$ . 426875)])
(put 'verilog-sk-prompt-state-selector 'no-self-insert t)
#@577 Prompt for the name of a state machine selector.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-state-selector #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("name of selector (eg {a,b,c,d}): " str) t] 11 (#$ . 427124) "*P\nP"])
(put 'verilog-sk-prompt-output 'no-self-insert t)
#@562 Prompt for the name of something.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-output #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("output: " str) t] 11 (#$ . 428209) "*P\nP"])
(put 'verilog-sk-prompt-msb 'no-self-insert t)
#@575 Prompt for most significant bit specification.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-msb #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("msb:" str & 58 & '(verilog-sk-prompt-lsb) | -1) t] 11 (#$ . 429243) "*P\nP"])
(put 'verilog-sk-prompt-lsb 'no-self-insert t)
#@576 Prompt for least significant bit specification.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-lsb #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("lsb:" str) t] 11 (#$ . 430320) "*P\nP"])
(defvar verilog-sk-p nil)
(put 'verilog-sk-prompt-width 'no-self-insert t)
#@562 Prompt for a width specification.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-prompt-width #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil (progn (setq verilog-sk-p (point)) (verilog-sk-prompt-msb) (if (> (point) verilog-sk-p) "] " " "))) t] 11 (#$ . 431389) "*P\nP"])
#@106 Insert a descriptive header at the top of the file.
See also `verilog-header' for an alternative format.
(defalias 'verilog-sk-header #[0 "\212eb\210\300 )\207" [verilog-sk-header-tmpl] 1 (#$ . 432463) "*"])
(put 'verilog-sk-header-tmpl 'no-self-insert t)
#@593 Insert a comment block containing the module title, author, etc.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-header-tmpl #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[Description]: " "//                              -*- Mode: Verilog -*-" "\n// Filename        : " (buffer-name) "\n// Description     : " str "\n// Author          : " (user-full-name) "\n// Created On      : " (current-time-string) "\n// Last Modified By: " (user-full-name) "\n// Last Modified On: " (current-time-string) "\n// Update Count    : 0" "\n// Status          : Unknown, Use with caution!" "\n") t] 11 (#$ . 432726) "*P\nP"])
(put 'verilog-sk-module 'no-self-insert t)
#@556 Insert a module definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-module #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "module " '(verilog-sk-prompt-name) " (/*AUTOARG*/ ) ;" n > _ n > (- verilog-indent-level-behavioral) "endmodule" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 434180) "*P\nP"])
(put 'verilog-sk-ovm-class 'no-self-insert t)
#@555 Insert a class definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-ovm-class #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "class " (setq name (skeleton-read "Name: ")) " extends " (skeleton-read "Extends: ") ";" n > _ n > "`ovm_object_utils_begin(" name ")" n > (- verilog-indent-level) " `ovm_object_utils_end" n > _ n > "function new(string name=\"" name "\");" n > "super.new(name);" n > (- verilog-indent-level) "endfunction" n > _ n > "endclass" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 435351) "*P\nP"])
(put 'verilog-sk-uvm-object 'no-self-insert t)
#@555 Insert a class definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-uvm-object #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "class " (setq name (skeleton-read "Name: ")) " extends " (skeleton-read "Extends: ") ";" n > _ n > "`uvm_object_utils_begin(" name ")" n > (- verilog-indent-level) "`uvm_object_utils_end" n > _ n > "function new(string name=\"" name "\");" n > "super.new(name);" n > (- verilog-indent-level) "endfunction" n > _ n > "endclass" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 436740) "*P\nP"])
(put 'verilog-sk-uvm-component 'no-self-insert t)
#@555 Insert a class definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-uvm-component #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "class " (setq name (skeleton-read "Name: ")) " extends " (skeleton-read "Extends: ") ";" n > _ n > "`uvm_component_utils_begin(" name ")" n > (- verilog-indent-level) "`uvm_component_utils_end" n > _ n > "function new(string name=\"\", uvm_component parent);" n > "super.new(name, parent);" n > (- verilog-indent-level) "endfunction" n > _ n > "endclass" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 438132) "*P\nP"])
(put 'verilog-sk-primitive 'no-self-insert t)
#@554 Insert a task definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-primitive #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "primitive " '(verilog-sk-prompt-name) " ( " '(verilog-sk-prompt-output) ("input:" ", " str) " );" n > _ n > (- verilog-indent-level-behavioral) "endprimitive" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 439551) "*P\nP"])
(put 'verilog-sk-task 'no-self-insert t)
#@554 Insert a task definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-task #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "task " '(verilog-sk-prompt-name) & 59 n > _ n > "begin" n > n > (- verilog-indent-level-behavioral) "end" n > (- verilog-indent-level-behavioral) "endtask" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 440764) "*P\nP"])
(put 'verilog-sk-function 'no-self-insert t)
#@558 Insert a function definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-function #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "function [" '(verilog-sk-prompt-width) | -1 '(verilog-sk-prompt-name) 59 n > _ n > "begin" n > n > (- verilog-indent-level-behavioral) "end" n > (- verilog-indent-level-behavioral) "endfunction" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 441973) "*P\nP"])
(put 'verilog-sk-always 'no-self-insert t)
#@579 Insert always block.  Prompt for sensitivity list.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-always #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "always @ ( /*AUTOSENSE*/ ) begin\n" > _ n > (- verilog-indent-level-behavioral) "end" n >) t] 11 (#$ . 443227) "*P\nP"])
(put 'verilog-sk-initial 'no-self-insert t)
#@553 Insert an initial block.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-initial #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "initial begin\n" > _ n > (- verilog-indent-level-behavioral) "end" n >) t] 11 (#$ . 444350) "*P\nP"])
(put 'verilog-sk-specify 'no-self-insert t)
#@550 Insert specify block.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-specify #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "specify\n" > _ n > (- verilog-indent-level-behavioral) "endspecify" n >) t] 11 (#$ . 445429) "*P\nP"])
(put 'verilog-sk-generate 'no-self-insert t)
#@551 Insert generate block.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-generate #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "generate\n" > _ n > (- verilog-indent-level-behavioral) "endgenerate" n >) t] 11 (#$ . 446507) "*P\nP"])
(put 'verilog-sk-begin 'no-self-insert t)
#@593 Insert begin end block.  Uses the minibuffer to prompt for name.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-begin #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "begin" '(verilog-sk-prompt-name) n > _ n > (- verilog-indent-level-behavioral) "end") t] 11 (#$ . 447586) "*P\nP"])
(put 'verilog-sk-fork 'no-self-insert t)
#@554 Insert a fork join block.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-fork #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "fork\n" > "begin" n > _ n > (- verilog-indent-level-behavioral) "end" n > "begin" n > n > (- verilog-indent-level-behavioral) "end" n > (- verilog-indent-level-behavioral) "join" n >) t] 11 (#$ . 448714) "*P\nP"])
(put 'verilog-sk-case 'no-self-insert t)
#@618 Build skeleton case statement, prompting for the selector expression,
and the case items.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-case #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[selector expression]: " > "case (" str ") " n > ("case selector: " str ": begin" n > _ n > (- verilog-indent-level-behavioral) "end" n >) resume: > (- verilog-case-indent) "endcase" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 449900) "*P\nP"])
(put 'verilog-sk-casex 'no-self-insert t)
#@619 Build skeleton casex statement, prompting for the selector expression,
and the case items.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-casex #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[selector expression]: " > "casex (" str ") " n > ("case selector: " str ": begin" n > _ n > (- verilog-indent-level-behavioral) "end" n >) resume: > (- verilog-case-indent) "endcase" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 451191) "*P\nP"])
(put 'verilog-sk-casez 'no-self-insert t)
#@619 Build skeleton casez statement, prompting for the selector expression,
and the case items.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-casez #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("[selector expression]: " > "casez (" str ") " n > ("case selector: " str ": begin" n > _ n > (- verilog-indent-level-behavioral) "end" n >) resume: > (- verilog-case-indent) "endcase" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 452485) "*P\nP"])
(put 'verilog-sk-if 'no-self-insert t)
#@560 Insert a skeleton if statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-if #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (> "if (" '(verilog-sk-prompt-condition) & ")" " begin" n > _ n > (- verilog-indent-level-behavioral) "end " n) t] 11 (#$ . 453776) "*P\nP"])
(put 'verilog-sk-else-if 'no-self-insert t)
#@565 Insert a skeleton else if statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-else-if #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (> (verilog-indent-line) "else if (" (progn (setq verilog-sk-p (point)) nil) '(verilog-sk-prompt-condition) (if (> (point) verilog-sk-p) ") " -1) & " begin" n > _ n > "end" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 454889) "*P\nP"])
(put 'verilog-sk-datadef 'no-self-insert t)
#@567 Common routine to get data definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-datadef #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil '(verilog-sk-prompt-width) | -1 ("name (RET to end):" str ", ") -2 ";" n) t] 11 (#$ . 456120) "*P\nP"])
(put 'verilog-sk-input 'no-self-insert t)
#@556 Insert an input definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-input #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "input  [" '(verilog-sk-datadef)) t] 11 (#$ . 457210) "*P\nP"])
(put 'verilog-sk-output 'no-self-insert t)
#@557 Insert an output definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-output #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "output [" '(verilog-sk-datadef)) t] 11 (#$ . 458250) "*P\nP"])
(put 'verilog-sk-inout 'no-self-insert t)
#@556 Insert an inout definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-inout #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "inout  [" '(verilog-sk-datadef)) t] 11 (#$ . 459291) "*P\nP"])
(defvar verilog-sk-signal nil)
(put 'verilog-sk-def-reg 'no-self-insert t)
#@553 Insert a reg definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-def-reg #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "reg    [" '(verilog-sk-prompt-width) | -1 verilog-sk-signal ";" n (verilog-pretty-declarations-auto)) t] 11 (#$ . 460363) "*P\nP"])
#@61 Insert a definition of signal under point at top of module.
(defalias 'verilog-sk-define-signal #[0 "\212\302\303x\210`)\212\302\303w\210`){\211\235\204*\212\211\304 \210\305 \210\306 \210\307 \210\310\311\")\207\310\312\"\207" [verilog-keywords verilog-sk-signal "a-zA-Z0-9_" nil verilog-beg-of-defun verilog-end-of-statement verilog-forward-syntactic-ws verilog-sk-def-reg message "signal at point is %s" "object at point (%s) is a keyword"] 4 (#$ . 461427) "*"])
(put 'verilog-sk-wire 'no-self-insert t)
#@554 Insert a wire definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-wire #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "wire   [" '(verilog-sk-datadef)) t] 11 (#$ . 461946) "*P\nP"])
(put 'verilog-sk-reg 'no-self-insert t)
#@553 Insert a reg definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-reg #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "reg   [" '(verilog-sk-datadef)) t] 11 (#$ . 462980) "*P\nP"])
(put 'verilog-sk-assign 'no-self-insert t)
#@564 Insert a skeleton assign statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-assign #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "assign " '(verilog-sk-prompt-name) " = " _ ";" n) t] 11 (#$ . 464014) "*P\nP"])
(put 'verilog-sk-while 'no-self-insert t)
#@568 Insert a skeleton while loop statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-while #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "while (" '(verilog-sk-prompt-condition) ") begin" n > _ n > (- verilog-indent-level-behavioral) "end " (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 465079) "*P\nP"])
(put 'verilog-sk-repeat 'no-self-insert t)
#@569 Insert a skeleton repeat loop statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-repeat #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "repeat (" '(verilog-sk-prompt-condition) ") begin" n > _ n > (- verilog-indent-level-behavioral) "end " (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 466248) "*P\nP"])
(put 'verilog-sk-for 'no-self-insert t)
#@568 Insert a skeleton while loop statement.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-for #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "for (" '(verilog-sk-prompt-init) "; " '(verilog-sk-prompt-condition) "; " '(verilog-sk-prompt-inc) ") begin" n > _ n > (- verilog-indent-level-behavioral) "end " (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 467417) "*P\nP"])
(put 'verilog-sk-comment 'no-self-insert t)
#@583 Inserts three comment lines, making a display comment.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-comment #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil > "/*\n" > "* " _ n > "*/") t] 11 (#$ . 468644) "*P\nP"])
(put 'verilog-sk-state-machine 'no-self-insert t)
#@563 Insert a state machine definition.

This is a skeleton command (see `skeleton-insert').
Normally the skeleton text is inserted at point, with nothing "inside".
If there is a highlighted region, the skeleton text is wrapped
around the region text.

A prefix argument ARG says to wrap the skeleton around the next ARG words.
A prefix argument of -1 says to wrap around region, even if not highlighted.
A prefix argument of zero says to wrap around zero words---that is, nothing.
This is a way of overriding the use of a highlighted region.

(fn &optional STR ARG)
(defalias 'verilog-sk-state-machine #[512 "\304 \305\211\305C\306\307#\216\310!\210\311\312#\313\240\210,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit prepare-change-group nil make-closure #[0 "\301\242\203	\302\300!\207\303\300!\207" [V0 V1 accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new ("Name of state variable: " '(setq input "state") > "// State registers for " str | -23 n '(setq verilog-sk-state str) > "reg [" '(verilog-sk-prompt-width) | -1 verilog-sk-state ", next_" verilog-sk-state 59 n '(setq input nil) > n > "// State FF for " verilog-sk-state n > "always @ ( " (read-string "clock:" "posedge clk") " or " (verilog-sk-prompt-reset) " ) begin" n > "if ( " verilog-sk-reset " ) " verilog-sk-state " = 0; else" n > verilog-sk-state " = next_" verilog-sk-state 59 n > (- verilog-indent-level-behavioral) "end" (progn (electric-verilog-terminate-line) nil) > n > "// Next State Logic for " verilog-sk-state n > "always @ ( /*AUTOSENSE*/ ) begin\n" > "case (" '(verilog-sk-prompt-state-selector) ") " n > ("case selector: " str ": begin" n > "next_" verilog-sk-state " = " _ ";" n > (- verilog-indent-level-behavioral) "end" n) resume: > (- verilog-case-indent) "endcase" (progn (electric-verilog-terminate-line) nil) > (- verilog-indent-level-behavioral) "end" (progn (electric-verilog-terminate-line) nil)) t] 11 (#$ . 469712) "*P\nP"])
#@39 Regexp that matches the include file.
(defconst verilog-include-file-regexp "^`include\\s-+\"\\([^\n\"]*\\)\"" (#$ . 471711))
#@51 Map containing mouse bindings for `verilog-mode'.
(defvar verilog-mode-mouse-map (byte-code "\301 \302\"\210\303\304\305#\210\303\306\307#\210\303\310\311#\210\207" [verilog-mode-map make-sparse-keymap set-keymap-parent define-key "
" verilog-load-file-at-point [mouse-2] verilog-load-file-at-mouse [S-mouse-2] mouse-yank-at-click] 5) (#$ . 471843))
#@159 Colorize included files and modules in the (changed?) region.
Clicking on the middle-mouse button loads them in a buffer (as in dired).

(fn BEG END OLD-LEN)
(defalias 'verilog-highlight-region #[771 "\204	\205+\212\306 \307\310\"\216\311\211\312 \311\211\311'\307\313\"\216\314 \204*\315(p)\315b\210\316 \262b\210\317 \210\320`\"\211\203g\321@\322\"\203`\321@\323\"\204[\321@\324\"\203`\325@!\210\211A\262\202?\210\203\250\326*\311#\203\250\327\224b\210\330\327\224\327\225\"\331\332\311#\210\331\333\311#\210\331\334\311#\210\331\323\311#\210\331\335\336#\210\331\337+#\266\202lb\210	\205\"\3401 \341\311\315\211\204\332\342#\203\332\343\344\224!\203\323\342\345\315\311#\210\202\267\344\225\262\202\267\266\203\205\212\344\224b\210\343 \204\346 \210\330\344\224\344\225\"\331\332\311#\210\331\333\311#\210\331\334\311#\210\331\324\311#\210\331\335\336#\210\331\337+#\266)\202\2630\202\"\210\315\262-\262+\262)\207" [verilog-highlight-includes verilog-highlight-modules verilog-no-change-functions inhibit-point-motion-hooks buffer-undo-list inhibit-read-only match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] t buffer-modified-p #[0 "\300?\205\301\302!\207" [V0 restore-buffer-modified-p nil] 2] verilog-scan-cache-ok-p nil line-end-position beginning-of-line overlays-in overlay-get detachable verilog-include-file verilog-inst-module delete-overlay search-forward-regexp 1 make-overlay overlay-put start-closed end-closed evaporate mouse-face highlight local-map (error) "\\(/\\*AUTOINST\\((.*?)\\)?\\*/\\|\\.\\*\\)" re-search-forward verilog-inside-comment-or-string-p 0 "[/\"\n]" verilog-read-inst-module-matcher inhibit-modification-hooks verilog-scan-cache-tick verilog-scan-cache-preserving verilog-include-file-regexp verilog-mode-mouse-map] 15 (#$ . 472205)])
#@62 Colorize included files and modules across the whole buffer.
(defalias 'verilog-highlight-buffer #[0 "\300ed\301#\207" [verilog-highlight-region nil] 4 (#$ . 474089) nil])
(defalias 'verilog-colorize-include-files-buffer 'verilog-highlight-buffer)
#@105 Load file under button 2 click's EVENT.
Files are checked based on `verilog-library-flags'.

(fn EVENT)
(defalias 'verilog-load-file-at-mouse #[257 "\212\300!\210\301\302!)\207" [mouse-set-point verilog-load-file-at-point t] 3 (#$ . 474344) "@e"])
#@134 Load file under point.
If WARN, throw warning if not found.
Files are checked based on `verilog-library-flags'.

(fn &optional WARN)
(defalias 'verilog-load-file-at-point #[256 "\212\301``\"\302\203,\211\204,\303@\304\"\203%\305\306@!\307@!{!\210\310\262A\262\202\311 \210\211?\205k\312!\205k\313\314\315!\316 \"@\203a\317\313\314\315!\316 \"@!\203a\320\313\314\315!\316 \"@!\266\202\202m\205k\321\322\323\315!\"\266\202)\207" [verilog-include-file-regexp overlays-in nil overlay-get verilog-inst-module verilog-goto-defun-file overlay-start overlay-end t beginning-of-line looking-at verilog-library-filenames match-string-no-properties 1 buffer-file-name file-readable-p find-file message "File `%s' isn't readable, use shift-mouse2 to paste in this field" match-string] 7 (#$ . 474600) nil])
#@68 Tell the user their current version, and where to get the FAQ etc.
(defalias 'verilog-faq #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211\316\317\320\"!\210\316\321!\210\316\322!\210\316\321!\210\316\323!\210\316\321!\210\316\324!\210\316\321!\325!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*verilog-mode help*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ format "You are using verilog-mode %s\n" "\n" "For new releases, see https://www.veripool.org/verilog-mode\n" "For frequently asked questions, see https://www.veripool.org/verilog-mode-faq.html\n" "To submit a bug, use M-x verilog-submit-bug-report\n" internal-temp-output-buffer-show standard-output verilog-mode-version] 7 (#$ . 475421) nil])
(autoload 'reporter-submit-bug-report "reporter")
#@50 Submit via mail a bug report on verilog-mode.el.
(defalias 'verilog-submit-bug-report #[0 "\303\304\305\306	P\307\310\211\311\n\312Q&)\207" [reporter-prompt-for-summary-p verilog-mode-version invocation-name t reporter-submit-bug-report "wsnyder@wsnyder.org" "verilog-mode v" (verilog-active-low-regexp verilog-after-save-font-hook verilog-align-ifelse verilog-assignment-delay verilog-auto-arg-sort verilog-auto-declare-nettype verilog-auto-delete-trailing-whitespace verilog-auto-endcomments verilog-auto-hook verilog-auto-ignore-concat verilog-auto-indent-on-newline verilog-auto-inout-ignore-regexp verilog-auto-input-ignore-regexp verilog-auto-inst-column verilog-auto-inst-dot-name verilog-auto-inst-interfaced-ports verilog-auto-inst-param-value verilog-auto-inst-sort verilog-auto-inst-template-numbers verilog-auto-inst-vector verilog-auto-lineup verilog-auto-newline verilog-auto-output-ignore-regexp verilog-auto-read-includes verilog-auto-reset-blocking-in-non verilog-auto-reset-widths verilog-auto-save-policy verilog-auto-sense-defines-constant verilog-auto-sense-include-inputs verilog-auto-star-expand verilog-auto-star-save verilog-auto-template-warn-unused verilog-auto-tieoff-declaration verilog-auto-tieoff-ignore-regexp verilog-auto-unused-ignore-regexp verilog-auto-wire-type verilog-before-auto-hook verilog-before-delete-auto-hook verilog-before-getopt-flags-hook verilog-before-save-font-hook verilog-cache-enabled verilog-case-fold verilog-case-indent verilog-cexp-indent verilog-compiler verilog-coverage verilog-delete-auto-hook verilog-getopt-flags-hook verilog-highlight-grouping-keywords verilog-highlight-includes verilog-highlight-modules verilog-highlight-translate-off verilog-indent-begin-after-if verilog-indent-declaration-macros verilog-indent-level verilog-indent-level-behavioral verilog-indent-level-declaration verilog-indent-level-directive verilog-indent-level-module verilog-indent-lists verilog-library-directories verilog-library-extensions verilog-library-files verilog-library-flags verilog-linter verilog-minimum-comment-distance verilog-mode-hook verilog-mode-release-emacs verilog-mode-version verilog-preprocessor verilog-simulator verilog-tab-always-indent verilog-tab-to-comment verilog-typedef-regexp verilog-warn-fatal) nil "Hi,\n\nI want to report a bug.\n\nBefore I go further, I want to say that Verilog mode has changed my life.\nI save so much time, my files are colored nicely, my co workers respect\nmy coding ability... until now.  I'd really appreciate anything you\ncould do to help me out with this minor deficiency in the product.\n\nI've taken a look at the Verilog-Mode FAQ at\nhttps://www.veripool.org/verilog-mode-faq.html.\n\nAnd, I've considered filing the bug on the issue tracker at\nhttps://www.veripool.org/verilog-mode-bugs\nsince I realize that public bugs are easier for you to track,\nand for others to search, but would prefer to email.\n\nSo, to reproduce the bug, start a fresh Emacs via " "\n-no-init-file -no-site-file'.  In a new buffer, in Verilog mode, type\nthe code included below.\n\nGiven those lines, I expected [[Fill in here]] to happen;\nbut instead, [[Fill in here]] happens!.\n\n== The code: =="] 9 (#$ . 476362) nil])
(provide 'verilog-mode)

Youez - 2016 - github.com/yon3zu
LinuXploit