X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/c07bb40b73856e3c40daf1dc6007ea13e3870912..cbee283dd7dd655124e81a6bd555506476180b5d:/lisp/progmodes/antlr-mode.el?ds=sidebyside diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index 3b7a2015af..3b0c3cc63e 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -1,6 +1,6 @@ ;;; antlr-mode.el --- major mode for ANTLR grammar files -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. ;; ;; Author: Christoph.Wedler@sap.com @@ -12,7 +12,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, @@ -85,12 +85,17 @@ ;;; Code: -(provide 'antlr-mode) +(eval-when-compile + (require 'cl)) + (require 'easymenu) +;; Just to get the rid of the byte compiler warning. The code for +;; this function and its friends are too complex for their own good. +(declare-function cond-emacs-xemacs-macfn "antlr-mode" (args &optional msg)) + ;; General Emacs/XEmacs-compatibility compile-time macros -(eval-when-compile - (require 'cl) +(eval-when-compile (defmacro cond-emacs-xemacs (&rest args) (cond-emacs-xemacs-macfn args "`cond-emacs-xemacs' must return exactly one element")) @@ -99,7 +104,7 @@ (and (eq (car args) :@) (null msg) ; (:@ ...spliced...) (setq args (cdr args) msg "(:@ ....) must return exactly one element")) - (let ((ignore (if (string-match "XEmacs" emacs-version) :EMACS :XEMACS)) + (let ((ignore (if (featurep 'xemacs) :EMACS :XEMACS)) (mode :BOTH) code) (while (consp args) (if (memq (car args) '(:EMACS :XEMACS :BOTH)) (setq mode (pop args))) @@ -115,7 +120,7 @@ ;; existing functions when they are `fboundp', provide shortcuts if they are ;; known to be defined in a specific Emacs branch (for short .elc) (defmacro defunx (name arglist &rest definition) - (let ((xemacsp (string-match "XEmacs" emacs-version)) reuses) + (let ((xemacsp (featurep 'xemacs)) reuses) (while (memq (car definition) '(:try :emacs-and-try :xemacs-and-try)) (if (eq (pop definition) (if xemacsp :xemacs-and-try :emacs-and-try)) @@ -152,7 +157,7 @@ (defmacro ignore-errors-x (&rest body) (let ((specials '((scan-sexps . 4) (scan-lists . 5))) spec nils) - (if (and (string-match "XEmacs" emacs-version) + (if (and (featurep 'xemacs) (null (cdr body)) (consp (car body)) (setq spec (assq (caar body) specials)) (>= (setq nils (- (cdr spec) (length (car body)))) 0)) @@ -166,7 +171,7 @@ `(let ((,modified (buffer-modified-p))) (unwind-protect (let ((buffer-undo-list t) (inhibit-read-only t) - ,@(unless (string-match "XEmacs" emacs-version) + ,@(unless (featurep 'xemacs) '((inhibit-point-motion-hooks t) deactivate-mark)) before-change-functions after-change-functions buffer-file-name buffer-file-truename) @@ -176,15 +181,12 @@ (put 'save-buffer-state-x 'lisp-indent-function 0) ;; get rid of byte-compile warnings -(eval-when-compile ; required and optional libraries - (require 'cc-mode) - (ignore-errors (require 'font-lock)) - (ignore-errors (require 'compile)) - ;;(ignore-errors (defun c-init-language-vars))) dangerous on Emacs! - ;;(ignore-errors (defun c-init-c-language-vars))) dangerous on Emacs! - ;;(ignore-errors (defun c-basic-common-init)) dangerous on Emacs! - (defvar outline-level) (defvar imenu-use-markers) - (defvar imenu-create-index-function)) +(eval-when-compile + (require 'cc-mode)) + +(defvar outline-level) +(defvar imenu-use-markers) +(defvar imenu-create-index-function) ;; We cannot use `c-forward-syntactic-ws' directly since it is a macro since ;; cc-mode-5.30 => antlr-mode compiled with older cc-mode would fail (macro @@ -568,7 +570,7 @@ The standard value contains the following functions as READ-FN: general value, or `antlr-read-boolean' with ARGs = \(PROMPT TABLE) which reads a boolean value or a member of TABLE. PROMPT is the prompt when asking for a new value. If non-nil, TABLE is a table for completion or -a function evaluating to such a table. The return value is quoted iff +a function evaluating to such a table. The return value is quoted if AS-STRING is non-nil and is either t or a symbol which is a member of `antlr-options-style'.") @@ -840,7 +842,8 @@ Do not change." (defface antlr-keyword (cond-emacs-xemacs '((((class color) (background light)) - (:foreground "black" :EMACS :weight bold :XEMACS :bold t)))) + (:foreground "black" :EMACS :weight bold :XEMACS :bold t)) + (t :inherit font-lock-keyword-face))) "ANTLR keywords." :group 'antlr) ;; backward-compatibility alias @@ -850,7 +853,8 @@ Do not change." (defface antlr-syntax (cond-emacs-xemacs '((((class color) (background light)) - (:foreground "black" :EMACS :weight bold :XEMACS :bold t)))) + (:foreground "black" :EMACS :weight bold :XEMACS :bold t)) + (t :inherit font-lock-constant-face))) "ANTLR syntax symbols like :, |, (, ), ...." :group 'antlr) ;; backward-compatibility alias @@ -860,7 +864,8 @@ Do not change." (defface antlr-ruledef (cond-emacs-xemacs '((((class color) (background light)) - (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)))) + (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)) + (t :inherit font-lock-function-name-face))) "ANTLR rule references (definition)." :group 'antlr) ;; backward-compatibility alias @@ -870,7 +875,8 @@ Do not change." (defface antlr-tokendef (cond-emacs-xemacs '((((class color) (background light)) - (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)))) + (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)) + (t :inherit font-lock-function-name-face))) "ANTLR token references (definition)." :group 'antlr) ;; backward-compatibility alias @@ -878,7 +884,8 @@ Do not change." (defvar antlr-ruleref-face 'antlr-ruleref) (defface antlr-ruleref - '((((class color) (background light)) (:foreground "blue4"))) + '((((class color) (background light)) (:foreground "blue4")) + (t :inherit font-lock-type-face)) "ANTLR rule references (usage)." :group 'antlr) ;; backward-compatibility alias @@ -886,7 +893,8 @@ Do not change." (defvar antlr-tokenref-face 'antlr-tokenref) (defface antlr-tokenref - '((((class color) (background light)) (:foreground "orange4"))) + '((((class color) (background light)) (:foreground "orange4")) + (t :inherit font-lock-type-face)) "ANTLR token references (usage)." :group 'antlr) ;; backward-compatibility alias @@ -896,7 +904,8 @@ Do not change." (defface antlr-literal (cond-emacs-xemacs '((((class color) (background light)) - (:foreground "brown4" :EMACS :weight bold :XEMACS :bold t)))) + (:foreground "brown4" :EMACS :weight bold :XEMACS :bold t)) + (t :inherit font-lock-string-face))) "ANTLR special literal tokens. It is used to highlight strings matched by the first regexp group of `antlr-font-lock-literal-regexp'." @@ -1868,7 +1877,7 @@ cell where the two values determine the area inside the braces." (read initial) initial)) (cdr value)))) - (message (cadr value)) + (message "%s" (or (cadr value) "")) (setq value nil))) ;; insert value ---------------------------------------------------------- (if (consp old) @@ -2203,8 +2212,8 @@ part SUPER in the result of `antlr-file-dependencies'. CLASSES is the part \(CLASS-SPEC ...) in the result of `antlr-directory-dependencies'. The result looks like \(OPTION WITH-UNKNOWN GLIB ...). OPTION is the -complete \"-glib\" option. WITH-UNKNOWN has value t iff there is none -or more than one grammar file for at least one super grammar. +complete \"-glib\" option. WITH-UNKNOWN is t if there is none or more +than one grammar file for at least one super grammar. Each GLIB looks like \(GRAMMAR-FILE \. EVOCAB). GRAMMAR-FILE is a file in which a super-grammar is defined. EVOCAB is the value of the export @@ -2662,7 +2671,9 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'." indent-tabs-mode (cadddr elem) alist nil)))))) +(provide 'antlr-mode) + ;;; Local IspellPersDict: .ispell_antlr -;;; arch-tag: 5de2be79-3d13-4560-8fbc-f7d0234dcb5c +;; arch-tag: 5de2be79-3d13-4560-8fbc-f7d0234dcb5c ;;; antlr-mode.el ends here