annotate lisp/cedet/semantic/ede-grammar.el @ 112439:5610f272341f

* src/image.c: Add cast to fix type clash
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 22 Jan 2011 20:34:48 -0800
parents 61f7601898b1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
112284
61f7601898b1 Refill some copyright headers.
Glenn Morris <rgm@gnu.org>
parents: 112228
diff changeset
3 ;; Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010, 2011
61f7601898b1 Refill some copyright headers.
Glenn Morris <rgm@gnu.org>
parents: 112228
diff changeset
4 ;; Free Software Foundation, Inc.
104524
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
5
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
6 ;; Author: Eric M. Ludlam <zappo@gnu.org>
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
7 ;; Keywords: project, make
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
8
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
10
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
11 ;; 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
12 ;; 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
13 ;; 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
14 ;; (at your option) any later version.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
15
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
16 ;; 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
17 ;; 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
18 ;; 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
19 ;; GNU General Public License for more details.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
20
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
21 ;; 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
22 ;; 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
23
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
24 ;;; Commentary:
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
25 ;;
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
26 ;; Handle .by or .wy files.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
27
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
28 (require 'semantic)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
29 (require 'ede/proj)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
30 (require 'ede/pmake)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
31 (require 'ede/pconf)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
32 (require 'ede/proj-elisp)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
33 (require 'semantic/grammar)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
34
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
35 ;;; Code:
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
36 (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
37 ((menu :initform nil)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
38 (keybindings :initform nil)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
39 (phony :initform t)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
40 (sourcetype :initform
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
41 (semantic-ede-source-grammar-wisent
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
42 semantic-ede-source-grammar-bovine
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
43 ))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
44 (availablecompilers :initform
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
45 (semantic-ede-grammar-compiler-wisent
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
46 semantic-ede-grammar-compiler-bovine
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 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
49 "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
50 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
51 parsing different languages.")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
52
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
53 (defvar semantic-ede-source-grammar-wisent
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
54 (ede-sourcecode "semantic-ede-grammar-source-wisent"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
55 :name "Wisent Grammar"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
56 :sourcepattern "\\.wy$"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
57 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
58 "Semantic Grammar source code definition for wisent.")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
59
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
60 (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
61 nil
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
62 "Specialized compiler for semantic grammars.")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
63
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
64 (defvar semantic-ede-grammar-compiler-wisent
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
65 (semantic-ede-grammar-compiler-class
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
66 "ede-emacs-wisent-compiler"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
67 :name "emacs"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
68 :variables '(("EMACS" . "emacs"))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
69 :commands
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
70 '(
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
71 "@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
72 "@for loadpath in . ${LOADPATH}; do \\"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
73 " 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
74 "done;"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
75 "@echo \"(require 'semantic-load)\" >> grammar-make-script"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
76 "@echo \"(require 'semantic-grammar)\" >> grammar-make-script"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
77 ;; "@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
78 "\"$(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
79 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
80 ;; :autoconf '("AM_PATH_LISPDIR")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
81 :sourcetype '(semantic-ede-source-grammar-wisent)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
82 :objectextention "-wy.elc"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
83 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
84 "Compile Emacs Lisp programs.")
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
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
87 (defvar semantic-ede-source-grammar-bovine
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
88 (ede-sourcecode "semantic-ede-grammar-source-bovine"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
89 :name "Bovine Grammar"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
90 :sourcepattern "\\.by$"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
91 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
92 "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
93
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
94 (defvar semantic-ede-grammar-compiler-bovine
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
95 (semantic-ede-grammar-compiler-class
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
96 "ede-emacs-wisent-compiler"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
97 :name "emacs"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
98 :variables '(("EMACS" . "emacs"))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
99 :commands
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
100 '(
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
101 "@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
102 "@for loadpath in . ${LOADPATH}; do \\"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
103 " 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
104 "done;"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
105 "@echo \"(require 'semantic-load)\" >> grammar-make-script"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
106 "@echo \"(require 'semantic-grammar)\" >> grammar-make-script"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
107 ;; "@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
108 "\"$(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
109 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
110 ;; :autoconf '("AM_PATH_LISPDIR")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
111 :sourcetype '(semantic-ede-source-grammar-bovine)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
112 :objectextention "-by.elc"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
113 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
114 "Compile Emacs Lisp programs.")
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
115
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
116 ;;; Target options.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
117 (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
118 "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
119 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
120 ;; 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
121 ;; 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
122 (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
123 t
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
124 (call-next-method) ; The usual thing.
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
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
127 (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
128 "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
129 (let* ((cb (current-buffer))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
130 (proj (ede-target-parent obj))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
131 (default-directory (oref proj directory)))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
132 (mapc (lambda (src)
105799
3fe6da4a95a9 * cedet/srecode/srt-mode.el (semantic-analyze-possible-completions):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105377
diff changeset
133 (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
134 (save-excursion
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
135 (semantic-grammar-create-package))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
136 (save-buffer)
111271
61073c29d954 Fix previous cedet change and ChangeLog.
Glenn Morris <rgm@gnu.org>
parents: 111268
diff changeset
137 (byte-recompile-file (concat (semantic-grammar-package) ".el") nil 0)))
61073c29d954 Fix previous cedet change and ChangeLog.
Glenn Morris <rgm@gnu.org>
parents: 111268
diff changeset
138 (oref obj source)))
104524
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
139 (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
140
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
141 ;;; Makefile generation functions
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 (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
144 "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
145 (cond ((ede-proj-automake-p)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
146 (error "No Automake support for Semantic Grammars"))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
147 (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
148
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
149 (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
150 "Insert variables needed by target THIS."
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
151 (ede-proj-makefile-insert-loadpath-items
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
152 (ede-proj-elisp-packages-to-loadpath
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
153 (list "eieio" "semantic" "inversion" "ede")))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
154 ;; eieio for object system needed in ede
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
155 ;; semantic because it is
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
156 ;; Inversion for versioning system.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
157 ;; ede for project regeneration
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
158 (ede-pmake-insert-variable-shared
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
159 (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
160 (insert
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
161 (mapconcat (lambda (src)
105799
3fe6da4a95a9 * cedet/srecode/srt-mode.el (semantic-analyze-possible-completions):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105377
diff changeset
162 (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
163 (concat (semantic-grammar-package) ".el")))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
164 (oref this source)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
165 " ")))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
166 )
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 (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
169 "Insert rules needed by THIS target."
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
170 ;; Add in some dependencies.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
171 ;; (mapc (lambda (src)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
172 ;; (let ((nm (file-name-sans-extension src)))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
173 ;; (insert nm "-wy.el: " src "\n"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
174 ;; 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
175 ;; ))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
176 ;; (oref this source))
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
177 ;; Call the normal insertion of rules.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
178 (call-next-method)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
179 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
180
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
181 (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
182 "Insert dist dependencies, or intermediate targets.
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
183 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
184 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
185 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
186 (call-next-method)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
187 (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
188 )
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
189
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
190 ;; (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
191 ;; "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
192
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
193 (ede-proj-register-target "semantic grammar"
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
194 semantic-ede-proj-target-grammar)
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
195
fbd55cc47b77 * cedet/ede/system.el (ede-upload-html-documentation)
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
196 (provide 'semantic/ede-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 ;;; semantic/ede-grammar.el ends here