Mercurial > emacs
annotate lisp/cedet/semantic/ede-grammar.el @ 108078:44c107eab0b8
* etc/NEWS: Tramp supports SELinux.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Fri, 23 Apr 2010 16:19:44 +0200 |
parents | 1d1d5d9bd884 |
children | a8ba29b9ad19 376148b31b5e |
rev | line source |
---|---|
104524
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
1 ;;; semantic/ede-grammar.el --- EDE support for Semantic Grammar Files |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
2 |
106815 | 3 ;;; Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
104524
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
4 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
5 ;; Author: Eric M. Ludlam <zappo@gnu.org> |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
6 ;; Keywords: project, make |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
7 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
8 ;; This file is part of GNU Emacs. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
9 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
10 ;; GNU Emacs is free software: you can redistribute it and/or modify |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
11 ;; it under the terms of the GNU General Public License as published by |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
12 ;; the Free Software Foundation, either version 3 of the License, or |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
13 ;; (at your option) any later version. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
14 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
15 ;; GNU Emacs is distributed in the hope that it will be useful, |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
18 ;; GNU General Public License for more details. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
19 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
20 ;; You should have received a copy of the GNU General Public License |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
22 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
23 ;;; Commentary: |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
24 ;; |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
25 ;; Handle .by or .wy files. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
26 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
27 (require 'semantic) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
28 (require 'ede/proj) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
29 (require 'ede/pmake) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
30 (require 'ede/pconf) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
31 (require 'ede/proj-elisp) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
32 (require 'semantic/grammar) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
33 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
34 ;;; Code: |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
35 (defclass semantic-ede-proj-target-grammar (ede-proj-target-makefile) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
36 ((menu :initform nil) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
37 (keybindings :initform nil) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
38 (phony :initform t) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
39 (sourcetype :initform |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
40 (semantic-ede-source-grammar-wisent |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
41 semantic-ede-source-grammar-bovine |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
42 )) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
43 (availablecompilers :initform |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
44 (semantic-ede-grammar-compiler-wisent |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
45 semantic-ede-grammar-compiler-bovine |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
46 )) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
47 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
48 "This target consists of a group of grammar files. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
49 A grammar target consists of grammar files that build Emacs Lisp programs for |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
50 parsing different languages.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
51 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
52 (defvar semantic-ede-source-grammar-wisent |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
53 (ede-sourcecode "semantic-ede-grammar-source-wisent" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
54 :name "Wisent Grammar" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
55 :sourcepattern "\\.wy$" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
56 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
57 "Semantic Grammar source code definition for wisent.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
58 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
59 (defclass semantic-ede-grammar-compiler-class (ede-compiler) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
60 nil |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
61 "Specialized compiler for semantic grammars.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
62 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
63 (defvar semantic-ede-grammar-compiler-wisent |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
64 (semantic-ede-grammar-compiler-class |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
65 "ede-emacs-wisent-compiler" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
66 :name "emacs" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
67 :variables '(("EMACS" . "emacs")) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
68 :commands |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
69 '( |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
70 "@echo \"(add-to-list 'load-path nil)\" > grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
71 "@for loadpath in . ${LOADPATH}; do \\" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
72 " echo \"(add-to-list 'load-path \\\"$$loadpath\\\")\" >> grammar-make-script; \\" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
73 "done;" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
74 "@echo \"(require 'semantic-load)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
75 "@echo \"(require 'semantic-grammar)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
76 ;; "@echo \"(setq debug-on-error t)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
77 "\"$(EMACS)\" -batch --no-site-file -l grammar-make-script -f semantic-grammar-batch-build-packages $^" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
78 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
79 ;; :autoconf '("AM_PATH_LISPDIR") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
80 :sourcetype '(semantic-ede-source-grammar-wisent) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
81 :objectextention "-wy.elc" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
82 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
83 "Compile Emacs Lisp programs.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
84 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
85 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
86 (defvar semantic-ede-source-grammar-bovine |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
87 (ede-sourcecode "semantic-ede-grammar-source-bovine" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
88 :name "Bovine Grammar" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
89 :sourcepattern "\\.by$" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
90 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
91 "Semantic Grammar source code definition for the bovinator.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
92 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
93 (defvar semantic-ede-grammar-compiler-bovine |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
94 (semantic-ede-grammar-compiler-class |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
95 "ede-emacs-wisent-compiler" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
96 :name "emacs" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
97 :variables '(("EMACS" . "emacs")) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
98 :commands |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
99 '( |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
100 "@echo \"(add-to-list 'load-path nil)\" > grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
101 "@for loadpath in . ${LOADPATH}; do \\" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
102 " echo \"(add-to-list 'load-path \\\"$$loadpath\\\")\" >> grammar-make-script; \\" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
103 "done;" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
104 "@echo \"(require 'semantic-load)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
105 "@echo \"(require 'semantic-grammar)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
106 ;; "@echo \"(setq debug-on-error t)\" >> grammar-make-script" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
107 "\"$(EMACS)\" -batch --no-site-file -l grammar-make-script -f semantic-grammar-batch-build-packages $^" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
108 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
109 ;; :autoconf '("AM_PATH_LISPDIR") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
110 :sourcetype '(semantic-ede-source-grammar-bovine) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
111 :objectextention "-by.elc" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
112 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
113 "Compile Emacs Lisp programs.") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
114 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
115 ;;; Target options. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
116 (defmethod ede-buffer-mine ((this semantic-ede-proj-target-grammar) buffer) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
117 "Return t if object THIS lays claim to the file in BUFFER. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
118 Lays claim to all -by.el, and -wy.el files." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
119 ;; We need to be a little more careful than this, but at the moment it |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
120 ;; is common to have only one target of this class per directory. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
121 (if (string-match "-[bw]y\\.elc?$" (buffer-file-name buffer)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
122 t |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
123 (call-next-method) ; The usual thing. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
124 )) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
125 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
126 (defmethod project-compile-target ((obj semantic-ede-proj-target-grammar)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
127 "Compile all sources in a Lisp target OBJ." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
128 (let* ((cb (current-buffer)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
129 (proj (ede-target-parent obj)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
130 (default-directory (oref proj directory))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
131 (mapc (lambda (src) |
105799
3fe6da4a95a9
* cedet/srecode/srt-mode.el (semantic-analyze-possible-completions):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105377
diff
changeset
|
132 (with-current-buffer (find-file-noselect src) |
104524
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
133 (save-excursion |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
134 (semantic-grammar-create-package)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
135 (save-buffer) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
136 (let ((cf (concat (semantic-grammar-package) ".el"))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
137 (if (or (not (file-exists-p cf)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
138 (file-newer-than-file-p src cf)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
139 (byte-compile-file cf))))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
140 (oref obj source))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
141 (message "All Semantic Grammar sources are up to date in %s" (object-name obj))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
142 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
143 ;;; Makefile generation functions |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
144 ;; |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
145 (defmethod ede-proj-makefile-sourcevar ((this semantic-ede-proj-target-grammar)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
146 "Return the variable name for THIS's sources." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
147 (cond ((ede-proj-automake-p) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
148 (error "No Automake support for Semantic Grammars")) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
149 (t (concat (ede-pmake-varname this) "_SEMANTIC_GRAMMAR")))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
150 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
151 (defmethod ede-proj-makefile-insert-variables :AFTER ((this semantic-ede-proj-target-grammar)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
152 "Insert variables needed by target THIS." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
153 (ede-proj-makefile-insert-loadpath-items |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
154 (ede-proj-elisp-packages-to-loadpath |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
155 (list "eieio" "semantic" "inversion" "ede"))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
156 ;; eieio for object system needed in ede |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
157 ;; semantic because it is |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
158 ;; Inversion for versioning system. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
159 ;; ede for project regeneration |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
160 (ede-pmake-insert-variable-shared |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
161 (concat (ede-pmake-varname this) "_SEMANTIC_GRAMMAR_EL") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
162 (insert |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
163 (mapconcat (lambda (src) |
105799
3fe6da4a95a9
* cedet/srecode/srt-mode.el (semantic-analyze-possible-completions):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105377
diff
changeset
|
164 (with-current-buffer (find-file-noselect src) |
104524
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
165 (concat (semantic-grammar-package) ".el"))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
166 (oref this source) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
167 " "))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
168 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
169 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
170 (defmethod ede-proj-makefile-insert-rules ((this semantic-ede-proj-target-grammar)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
171 "Insert rules needed by THIS target." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
172 ;; Add in some dependencies. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
173 ;; (mapc (lambda (src) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
174 ;; (let ((nm (file-name-sans-extension src))) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
175 ;; (insert nm "-wy.el: " src "\n" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
176 ;; nm "-wy.elc: " nm "-wy.el\n\n") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
177 ;; )) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
178 ;; (oref this source)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
179 ;; Call the normal insertion of rules. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
180 (call-next-method) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
181 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
182 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
183 (defmethod ede-proj-makefile-insert-dist-dependencies ((this semantic-ede-proj-target-grammar)) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
184 "Insert dist dependencies, or intermediate targets. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
185 This makes sure that all grammar lisp files are created before the dist |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
186 runs, so they are always up to date. |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
187 Argument THIS is the target that should insert stuff." |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
188 (call-next-method) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
189 (insert " $(" (ede-pmake-varname this) "_SEMANTIC_GRAMMAR_EL)") |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
190 ) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
191 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
192 ;; (autoload 'ede-proj-target-elisp "ede/proj-elisp" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
193 ;; "Target class for Emacs/Semantic grammar files." nil nil) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
194 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
195 (ede-proj-register-target "semantic grammar" |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
196 semantic-ede-proj-target-grammar) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
197 |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
198 (provide 'semantic/ede-grammar) |
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
199 |
105377 | 200 ;; arch-tag: 37a06a8d-957a-4fa2-a931-38482d28c24a |
104524
fbd55cc47b77
* cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff
changeset
|
201 ;;; semantic/ede-grammar.el ends here |