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))