Если Вы хотите наблюдать больше чем один элемент одновременно, можно добавить запятую и число элементов как так:
(v._Myfirst)[startIndex], count
Однако примечание, что количество должно быть константой, это не может быть результат другого выражения.
Thanks Don. I improved the code very slightly, here's a new version.
(define-generic-mode 'bnf-mode
() ;; comment char: inapplicable because # must be at start of line
nil ;; keywords
'(
("^#.*" . 'font-lock-comment-face) ;; comments at start of line
("^<.*?>" . 'font-lock-function-name-face) ;; LHS nonterminals
("<.*?>" . 'font-lock-builtin-face) ;; other nonterminals
("::=" . 'font-lock-const-face) ;; "goes-to" symbol
("\|" . 'font-lock-warning-face) ;; "OR" symbol
("\{:\\|:\}" . 'font-lock-keyword-face) ;; special pybnf delimiters
)
'("\\.bnf\\'" "\\.pybnf\\'") ;; filename suffixes
nil ;; extra function hooks
"Major mode for BNF highlighting.")
Семантический режим BNF был для собственного внутреннего формата синтаксического анализатора. Первоначальное название «bnf» было каламбуром, который сбивал людей с толку.
Существующие семантические режимы, такие как wisent-grammar-mode и bovine-grammar-mode, предназначены для грамматик, используемых CEDET, а исходный bnf-mode был похожи и не представляют собой настоящую грамматику стиля BNF.
Вероятно, вас больше интересует ebnf2ps, который переводит грамматики ebnf (yacc и т. д.) в синтаксические диаграммы, хотя я сам не использовал его.
Чтобы быть более читаемым и доступным для поиска, jmmcd ответил на свой вопрос следующим образом. Вы можете найти больше в emacs Help> elisp> 23.2.6 Generic Modes.
«Я поместил это в свой .emacs, и, похоже, он работает.»
(define-generic-mode 'bnf-mode
'("#")
nil
'(("^<.*?>" . 'font-lock-variable-name-face)
("<.*?>" . 'font-lock-keyword-face)
("::=" . 'font-lock-warning-face)
("\|" . 'font-lock-warning-face))
'("\\.bnf\\.pybnf\\'")
nil
"Major mode for BNF highlighting.")