Try to match a system identifier (or some other special token
like
(vl-lex-system-identifier echars breakp dollarops) → (mv token/nil remainder)
The order here is subtle. We check for a hit in
Function:
(defun vl-lex-system-identifier (echars breakp dollarops) (declare (xargs :guard (and (vl-echarlist-p echars) (booleanp breakp) (vl-plaintoken-alistp dollarops)))) (let ((__function__ 'vl-lex-system-identifier)) (declare (ignorable __function__)) (b* (((unless (and (consp echars) (eql (vl-echar->char (car echars)) #\$))) (mv nil echars)) ((mv tail remainder) (vl-read-while-simple-id-tail (cdr echars))) (etext (cons (car echars) tail)) (name (hons-copy (vl-echarlist->string etext))) (look (hons-assoc-equal name dollarops)) (breakp (and breakp t)) ((when look) (mv (make-vl-plaintoken :type (cdr look) :etext etext :breakp breakp) remainder)) ((unless tail) (mv nil echars))) (mv (make-vl-sysidtoken :etext etext :name name :breakp breakp) remainder))))