Function: verilog-at-constraint-p
verilog-at-constraint-p is a byte-compiled function defined in
verilog-mode.el.gz.
Signature
(verilog-at-constraint-p)
Documentation
If at the { of a constraint or coverpoint definition, return true.
Also move point to constraint.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/verilog-mode.el.gz
(defun verilog-at-constraint-p ()
"If at the { of a constraint or coverpoint definition, return true.
Also move point to constraint."
(if (save-excursion
(let ((p (point)))
(and
(equal (char-after) ?\{)
(not (verilog-at-streaming-op-p))
(ignore-errors (forward-list))
(progn (backward-char 1)
(verilog-backward-ws&directives)
(and
(or (equal (char-before) ?\{) ; empty case
(equal (char-before) ?\;)
(equal (char-before) ?\}))
;; skip what looks like bus repetition operator {#{
(not (string-match "^{\\s-*[][()0-9a-zA-Z_,:\\]*\\s-*{"
(buffer-substring p (point)))))))))
(progn
(let ( (pt (point)) (pass 0))
(verilog-backward-ws&directives)
(verilog-backward-token)
(if (looking-at (concat "\\<\\(?:constraint\\|coverpoint\\|cross\\|with\\)\\>\\|" verilog-in-constraint-re))
(progn (setq pass 1)
(if (looking-at "\\<with\\>")
(progn (verilog-backward-ws&directives)
(beginning-of-line) ; 1
(verilog-forward-ws&directives)
1 )
(verilog-beg-of-statement)
))
;; if first word token not keyword, it maybe the instance name
;; check next word token
(if (looking-at "\\<\\w+\\>\\|\\s-*[[(}]\\s-*\\S-+")
(progn (verilog-beg-of-statement)
(if (and
(not (string-match verilog-named-block-re (buffer-substring pt (point)))) ;; Abort if 'begin' keyword is found
(looking-at (concat "\\<\\(constraint\\|"
"\\(?:\\w+\\s-*:\\s-*\\)?\\(coverpoint\\|cross\\)"
"\\|with\\)\\>\\|" verilog-in-constraint-re)))
(setq pass 1)))))
(if (eq pass 0)
(progn (goto-char pt) nil) 1)))
;; not
nil))