Function: semantic-bovinate-nonterminal-check
semantic-bovinate-nonterminal-check is a byte-compiled function
defined in bovine.el.gz.
Signature
(semantic-bovinate-nonterminal-check STREAM NONTERMINAL)
Documentation
Check if STREAM not already parsed for NONTERMINAL.
If so abort because an infinite recursive parse is suspected.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/bovine.el.gz
(defun semantic-bovinate-nonterminal-check (stream nonterminal)
"Check if STREAM not already parsed for NONTERMINAL.
If so abort because an infinite recursive parse is suspected."
(or (hash-table-p semantic-bovinate-nonterminal-check-map)
(setq semantic-bovinate-nonterminal-check-map
(make-hash-table :test #'eq)))
(let* ((vs (gethash nonterminal semantic-bovinate-nonterminal-check-map)))
(if (memq stream vs)
;; Always enter debugger to see the backtrace
(let ((debug-on-signal t)
(debug-on-error t))
(setq semantic-bovinate-nonterminal-check-map nil)
(error "Infinite recursive parse suspected on %s" nonterminal))
(push stream
(gethash nonterminal semantic-bovinate-nonterminal-check-map)))))