Function: antlr-mode
antlr-mode is an autoloaded, interactive and byte-compiled function
defined in antlr-mode.el.gz.
Signature
(antlr-mode)
Documentation
Major mode for editing ANTLR grammar files.
In addition to any hooks its parent mode prog-mode might have run,
this mode runs the hook antlr-mode-hook, as the final or penultimate
step during initialization.
& antlr-electric-character
( antlr-electric-character
) antlr-electric-character
: antlr-electric-character
; antlr-electric-character
C-M-a antlr-beginning-of-rule
C-M-e antlr-end-of-rule
C-c C-a antlr-beginning-of-body
C-c C-b c-backward-into-nomenclature
C-c C-c comment-region
C-c C-e antlr-end-of-body
C-c C-f subword-forward
C-c C-o antlr-insert-option
C-c C-r antlr-run-tool
C-c C-v antlr-hide-actions
M-a c-beginning-of-statement
M-e c-end-of-statement
TAB antlr-indent-command
{ antlr-electric-character
| antlr-electric-character
} antlr-electric-character
Probably introduced at or before Emacs version 21.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/antlr-mode.el.gz
;;;###autoload
(define-derived-mode antlr-mode prog-mode
;; FIXME: Since it uses cc-mode, it bumps into c-update-modeline's
;; limitation to mode-name being a string.
;; '("Antlr." (:eval (cadr (assq antlr-language antlr-language-alist))))
"Antlr"
"Major mode for editing ANTLR grammar files."
:abbrev-table antlr-mode-abbrev-table
(c-initialize-cc-mode) ; cc-mode is required
(unless (fboundp 'c-forward-sws) ; see above
(fset 'antlr-c-forward-sws 'c-forward-syntactic-ws))
;; ANTLR specific ----------------------------------------------------------
(unless antlr-language
(set (make-local-variable 'antlr-language)
(or (antlr-language-option t) (antlr-language-option nil))))
(if (stringp (cadr (assq antlr-language antlr-language-alist)))
(setq mode-name
(concat "Antlr."
(cadr (assq antlr-language antlr-language-alist)))))
;; indentation, for the C engine -------------------------------------------
(setq c-buffer-is-cc-mode antlr-language)
(c-init-language-vars-for antlr-language)
(c-basic-common-init antlr-language (or antlr-indent-style "gnu"))
(set (make-local-variable 'outline-regexp) "[^#\n\^M]")
(set (make-local-variable 'outline-level) #'c-outline-level) ;TODO: define own
(set (make-local-variable 'indent-line-function) #'antlr-indent-line)
(set (make-local-variable 'indent-region-function) nil) ; too lazy
(setq comment-start "// "
comment-end ""
comment-start-skip "/\\*+ *\\|// *")
;; various -----------------------------------------------------------------
(set (make-local-variable 'font-lock-defaults) antlr-font-lock-defaults)
(set (make-local-variable 'imenu-create-index-function)
#'antlr-imenu-create-index-function)
(set (make-local-variable 'imenu-generic-expression) t) ; fool stupid test
(and antlr-imenu-name ; there should be a global variable...
(imenu-add-to-menubar
(if (stringp antlr-imenu-name) antlr-imenu-name "Index")))
(antlr-set-tabs))