emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115298: Stop keeping (all but one) generated cedet


From: Glenn Morris
Subject: [Emacs-diffs] trunk r115298: Stop keeping (all but one) generated cedet grammar files in the repository
Date: Sat, 30 Nov 2013 02:06:49 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115298
revision-id: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Fri 2013-11-29 18:06:34 -0800
message:
  Stop keeping (all but one) generated cedet grammar files in the repository
  
  * configure.ac (SUBDIR_MAKEFILES, AC_CONFIG_FILES):
  Add admin/grammars Makefile.
  
  * Makefile.in (distclean, bootstrap-clean, maintainer-clean):
  Also clean admin/grammars, if present.
  
  * admin/grammars/README: Remove.
  
  * admin/grammars/Makefile.in: New file.
  
  * admin/grammars/c.by, admin/grammars/java-tags.wy, admin/grammars/js.wy:
  * admin/grammars/python.wy: Update declarations to match generated outputs.
  
  * lisp/Makefile.in (semantic): New.
  (compile-main): Depend on semantic.
  
  * lisp/cedet/semantic/bovine/grammar.el (bovine--make-parser-1):
  New function, split from bovine-make-parsers.
  (bovine-make-parsers): Use bovine--make-parser-1.
  (bovine-batch-make-parser): New function.
  
  * lisp/cedet/semantic/wisent/grammar.el (wisent--make-parser-1):
  New function, split from wisent-make-parsers.
  (wisent-make-parsers): Use wisent--make-parser-1.
  (wisent-batch-make-parser): New function.
  
  * lisp/cedet/semantic/db.el (semanticdb-save-all-db):
  Avoid prompting in batch mode.
  
  * lisp/cedet/semantic/grammar.el (semantic-grammar-footer-template):
  Disable version-control and autoloads in the output.
  (semantic-grammar-create-package):
  Add option to return nil if output is up-to-date.
  
  * lisp/cedet/semantic/bovine/c-by.el, lisp/cedet/semantic/bovine/make-by.el:
  * lisp/cedet/semantic/bovine/scm-by.el, 
lisp/cedet/semantic/wisent/javat-wy.el:
  * lisp/cedet/semantic/wisent/js-wy.el, 
lisp/cedet/semantic/wisent/python-wy.el:
  * lisp/cedet/srecode/srt-wy.el: Remove generated files from repository.
  
  * .bzrignore: Update for this.
removed:
  admin/grammars/README          readme-20110730020351-lkqh5evroiy9byav-2
  lisp/cedet/semantic/bovine/c-by.el 
cby.el-20091113204419-o5vbwnq5f7feedwu-11245
  lisp/cedet/semantic/bovine/make-by.el 
makeby.el-20091113204419-o5vbwnq5f7feedwu-11250
  lisp/cedet/semantic/bovine/scm-by.el 
scmby.el-20091113204419-o5vbwnq5f7feedwu-11252
  lisp/cedet/semantic/wisent/javat-wy.el 
javatwy.el-20091113204419-o5vbwnq5f7feedwu-11314
  lisp/cedet/semantic/wisent/js-wy.el 
jswy.el-20091113204419-o5vbwnq5f7feedwu-11315
  lisp/cedet/semantic/wisent/python-wy.el 
pythonwy.el-20100110003642-lq2q4e83khar4ls8-1
  lisp/cedet/srecode/srt-wy.el   srtwy.el-20091113204419-o5vbwnq5f7feedwu-11339
added:
  admin/grammars/Makefile.in     makefile.in-20131130001301-3lt9hqzbk9kx1z05-1
modified:
  .bzrignore                     bzrignore-20091227212532-2lrlpwjsfm9i221p-1
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  Makefile.in                    makefile.in-20091113204419-o5vbwnq5f7feedwu-446
  admin/ChangeLog                changelog-20091113204419-o5vbwnq5f7feedwu-2226
  admin/grammars/c.by            c.by-20110730020351-lkqh5evroiy9byav-4
  admin/grammars/java-tags.wy    javatags.wy-20110730020351-lkqh5evroiy9byav-5
  admin/grammars/js.wy           
javascriptjv.wy-20110730020351-lkqh5evroiy9byav-6
  admin/grammars/python.wy       python.wy-20110730020351-lkqh5evroiy9byav-8
  configure.ac                   
configure.in-20091113204419-o5vbwnq5f7feedwu-783
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/Makefile.in               
makefile.in-20091113204419-o5vbwnq5f7feedwu-1831
  lisp/cedet/ChangeLog           changelog-20100919015713-3rbr456yray5m84f-1
  lisp/cedet/semantic/bovine/grammar.el 
bovinegrammar.el-20110730020351-lkqh5evroiy9byav-3
  lisp/cedet/semantic/db.el      db.el-20091113204419-o5vbwnq5f7feedwu-11267
  lisp/cedet/semantic/grammar.el 
grammar.el-20091113204419-o5vbwnq5f7feedwu-11281
  lisp/cedet/semantic/wisent/grammar.el 
wisentgrammar.el-20110730020351-lkqh5evroiy9byav-10
=== modified file '.bzrignore'
--- a/.bzrignore        2013-11-27 18:25:44 +0000
+++ b/.bzrignore        2013-11-30 02:06:34 +0000
@@ -145,6 +145,14 @@
 lisp/**/*-loaddefs.el
 lisp/**/loaddefs.el
 lisp/cus-load.el
+## Generated grammar files.
+lisp/cedet/semantic/bovine/c-by.el
+lisp/cedet/semantic/bovine/make-by.el
+lisp/cedet/semantic/bovine/scm-by.el
+lisp/cedet/semantic/wisent/javat-wy.el
+lisp/cedet/semantic/wisent/js-wy.el
+lisp/cedet/semantic/wisent/python-wy.el
+lisp/cedet/srecode/srt-wy.el
 lisp/eshell/esh-groups.el
 lisp/finder-inf.el
 lisp/gnus/_dir-locals.el

=== modified file 'ChangeLog'
--- a/ChangeLog 2013-11-29 20:03:24 +0000
+++ b/ChangeLog 2013-11-30 02:06:34 +0000
@@ -1,3 +1,11 @@
+2013-11-30  Glenn Morris  <address@hidden>
+
+       Stop keeping (most) generated cedet grammar files in the repository.
+       * configure.ac (SUBDIR_MAKEFILES, AC_CONFIG_FILES):
+       Add admin/grammars Makefile.
+       * Makefile.in (distclean, bootstrap-clean, maintainer-clean):
+       Also clean admin/grammars, if present.
+
 2013-11-29  Dani Moncayo  <address@hidden>
 
        * Makefile.in (epaths-force-w32): Fix 2013-11-20 typo.

=== modified file 'Makefile.in'
--- a/Makefile.in       2013-11-29 20:03:24 +0000
+++ b/Makefile.in       2013-11-30 02:06:34 +0000
@@ -857,7 +857,7 @@
        cd leim     && $(MAKE) $(MFLAGS) distclean
        cd lisp     && $(MAKE) $(MFLAGS) distclean
        cd nextstep && $(MAKE) $(MFLAGS) distclean
-       for dir in test/automated admin/unidata; do \
+       for dir in test/automated admin/grammars admin/unidata; do \
          [ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) distclean); \
        done
        ${top_distclean}
@@ -879,7 +879,7 @@
        cd leim     && $(MAKE) $(MFLAGS) bootstrap-clean
        cd lisp     && $(MAKE) $(MFLAGS) bootstrap-clean
        cd nextstep && $(MAKE) $(MFLAGS) maintainer-clean
-       for dir in test/automated admin/unidata; do \
+       for dir in test/automated admin/grammars admin/unidata; do \
          [ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) bootstrap-clean); \
        done
        [ ! -f config.log ] || mv -f config.log config.log~
@@ -903,7 +903,7 @@
        cd src  && $(MAKE) $(MFLAGS) maintainer-clean
        cd leim && $(MAKE) $(MFLAGS) maintainer-clean
        cd lisp && $(MAKE) $(MFLAGS) maintainer-clean
-       for dir in test/automated admin/unidata; do \
+       for dir in test/automated admin/grammars admin/unidata; do \
          [ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) maintainer-clean); \
        done
        ${top_maintainer_clean}

=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog   2013-11-28 20:21:55 +0000
+++ b/admin/ChangeLog   2013-11-30 02:06:34 +0000
@@ -1,3 +1,11 @@
+2013-11-30  Glenn Morris  <address@hidden>
+
+       Stop keeping (most) generated cedet grammar files in the repository.
+       * grammars/README: Remove.
+       * grammars/Makefile.in: New file.
+       * grammars/c.by, grammars/java-tags.wy, grammars/js.wy:
+       * grammars/python.wy: Update declarations to match generated outputs.
+
 2013-11-28  Glenn Morris  <address@hidden>
 
        * unidata/unidata-gen.el (unidata-gen-files):

=== added file 'admin/grammars/Makefile.in'
--- a/admin/grammars/Makefile.in        1970-01-01 00:00:00 +0000
+++ b/admin/grammars/Makefile.in        2013-11-30 02:06:34 +0000
@@ -0,0 +1,105 @@
+### @configure_input@
+
+## Copyright (C) 2013 Free Software Foundation, Inc.
+
+## This file is part of GNU Emacs.
+
+## 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 3 of the License, or
+## (at your option) any later version.
+
+## GNU Emacs is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+### Commentary:
+
+## This directory contains grammar files in Bison and Wisent,
+## used to generate the parser data in the lisp/cedet directory.
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+
+EMACS = ${top_builddir}/src/emacs
+emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
+
+make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
+make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
+
+cedetdir = ${top_srcdir}/lisp/cedet
+bovinedir = ${cedetdir}/semantic/bovine
+wisentdir = ${cedetdir}/semantic/wisent
+
+BOVINE = \
+       ${bovinedir}/c-by.el \
+       ${bovinedir}/make-by.el \
+       ${bovinedir}/scm-by.el
+
+## FIXME Should include this one too:
+##     ${cedetdir}/semantic/grammar-wy.el
+## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
+## requires it!
+WISENT = \
+       ${wisentdir}/javat-wy.el \
+       ${wisentdir}/js-wy.el \
+       ${wisentdir}/python-wy.el \
+       ${cedetdir}/srecode/srt-wy.el
+
+ALL = ${BOVINE} ${WISENT}
+
+.PHONY: all bovine wisent
+
+all: ${ALL}
+
+bovine: ${BOVINE}
+
+wisent: ${WISENT}
+
+
+${bovinedir}/c-by.el: ${srcdir}/c.by
+       ${make_bovine} -o "$@" ${srcdir}/c.by
+
+${bovinedir}/make-by.el: ${srcdir}/make.by
+       ${make_bovine} -o "$@" ${srcdir}/make.by
+
+${bovinedir}/scm-by.el: ${srcdir}/scheme.by
+       ${make_bovine} -o "$@" ${srcdir}/scheme.by
+
+
+${cedetdir}/semantic/grammar-wy.el: ${srcdir}/grammar.wy
+       ${make_wisent} -o "$@" ${srcdir}/grammar.wy
+
+${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
+       ${make_wisent} -o "$@" ${srcdir}/java-tags.wy
+
+${wisentdir}/js-wy.el: ${srcdir}/js.wy
+       ${make_wisent} -o "$@" ${srcdir}/js.wy
+
+${wisentdir}/python-wy.el: ${srcdir}/python.wy
+       ${make_wisent} -o "$@" ${srcdir}/python.wy
+
+${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
+       ${make_wisent} -o "$@" ${srcdir}/srecode-template.wy
+
+
+.PHONY: distclean bootstrap-clean maintainer-clean extraclean
+
+distclean:
+       rm -f Makefile
+
+bootstrap-clean maintainer-clean: distclean
+
+## We do not normally delete the generated files, even in bootstrap.
+## Creating them does not take long, so we could easily change this.
+extraclean:
+       rm -f ${ALL}
+
+# Makefile.in ends here

=== removed file 'admin/grammars/README'
--- a/admin/grammars/README     2012-10-06 14:22:31 +0000
+++ b/admin/grammars/README     1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
-This directory contains grammar files in Bison and Wisent, used to
-generate the parser data in the lisp/semantic/bovine/ and
-lisp/semantic/wisent/ directories.  You can run the parser generators
-with
-
-emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers
-emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers
-
-Currently, the parser files in lisp/ are not generated directly from
-these grammar files when making Emacs.  This state of affairs, and the
-contents of this directory, will change in a future version of Emacs.

=== modified file 'admin/grammars/c.by'
--- a/admin/grammars/c.by       2013-01-01 09:11:05 +0000
+++ b/admin/grammars/c.by       2013-11-30 02:06:34 +0000
@@ -41,9 +41,13 @@
 %provide semantic/bovine/c-by
 
 %{
-(declare-function semantic-c-reconstitute-token "semantic/bovine/c")
-(declare-function semantic-c-reconstitute-template "semantic/bovine/c")
-(declare-function semantic-expand-c-tag "semantic/bovine/c")
+(declare-function semantic-c-reconstitute-token "semantic/bovine/c"
+                 (tokenpart declmods typedecl))
+(declare-function semantic-c-reconstitute-template "semantic/bovine/c"
+                 (tag specifier))
+(declare-function semantic-expand-c-tag "semantic/bovine/c" (tag))
+(declare-function semantic-parse-region "semantic"
+                 (start end &optional nonterminal depth returnonerror))
 }
 
 %languagemode  c-mode c++-mode

=== modified file 'admin/grammars/java-tags.wy'
--- a/admin/grammars/java-tags.wy       2013-03-04 07:25:17 +0000
+++ b/admin/grammars/java-tags.wy       2013-11-30 02:06:34 +0000
@@ -25,6 +25,11 @@
 %package wisent-java-tags-wy
 %provide semantic/wisent/javat-wy
 
+%{
+(declare-function semantic-parse-region "semantic"
+                 (start end &optional nonterminal depth returnonerror))
+}
+
 %languagemode  java-mode
 
 ;; The default start symbol

=== modified file 'admin/grammars/js.wy'
--- a/admin/grammars/js.wy      2013-01-01 09:11:05 +0000
+++ b/admin/grammars/js.wy      2013-11-30 02:06:34 +0000
@@ -59,6 +59,12 @@
 
 %package wisent-javascript-jv-wy
 %provide semantic/wisent/js-wy
+
+%{
+(declare-function semantic-parse-region "semantic"
+                 (start end &optional nonterminal depth returnonerror))
+}
+
 ;; JAVE I prefere ecmascript-mode
 %languagemode ecmascript-mode javascript-mode
 

=== modified file 'admin/grammars/python.wy'
--- a/admin/grammars/python.wy  2013-01-01 09:11:05 +0000
+++ b/admin/grammars/python.wy  2013-11-30 02:06:34 +0000
@@ -91,8 +91,12 @@
 %provide semantic/wisent/python-wy
 
 %{
-(declare-function wisent-python-reconstitute-function-tag 
"semantic/wisent/python")
-(declare-function wisent-python-reconstitute-class-tag 
"semantic/wisent/python")
+(declare-function wisent-python-reconstitute-function-tag
+                 "semantic/wisent/python" (tag suite))
+(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python"
+                 (tag))
+(declare-function semantic-parse-region "semantic"
+                 (start end &optional nonterminal depth returnonerror))
 }
 
 %languagemode python-mode

=== modified file 'configure.ac'
--- a/configure.ac      2013-11-29 01:22:40 +0000
+++ b/configure.ac      2013-11-30 02:06:34 +0000
@@ -4971,13 +4971,12 @@
 fi
 
 
-dnl admin/ may or may not be present.
-opt_makefile=admin/unidata/Makefile
-
-if test -f "$srcdir/$opt_makefile.in"; then
-  SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
+dnl The admin/ directory used to be excluded from tarfiles.
+if test -d $srcdir/admin; then
+  SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/unidata/Makefile 
admin/grammars/Makefile"
   AC_CONFIG_FILES([admin/unidata/Makefile])
-fi
+  AC_CONFIG_FILES([admin/grammars/Makefile])
+fi                              dnl -d admin
 
 
 SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' 
-e 's|Makefile|Makefile.in|g'`

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-11-29 21:35:00 +0000
+++ b/lisp/ChangeLog    2013-11-30 02:06:34 +0000
@@ -1,3 +1,9 @@
+2013-11-30  Glenn Morris  <address@hidden>
+
+       Stop keeping (most) generated cedet grammar files in the repository.
+       * Makefile.in (semantic): New.
+       (compile-main): Depend on semantic.
+
 2013-11-29  Stefan Monnier  <address@hidden>
 
        * net/newst-reader.el (newsticker-html-renderer): Default to SHR if

=== modified file 'lisp/Makefile.in'
--- a/lisp/Makefile.in  2013-11-27 06:15:06 +0000
+++ b/lisp/Makefile.in  2013-11-30 02:06:34 +0000
@@ -296,7 +296,7 @@
 
 # Compile all the Elisp files that need it.  Beware: it approximates
 # `no-byte-compile', so watch out for false-positives!
-compile-main: leim compile-clean
+compile-main: leim semantic compile-clean
        @(cd $(lisp) && $(setwins); \
        els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el 
|g'`; \
        for el in $$els; do \
@@ -320,10 +320,18 @@
          fi \
        done
 
-.PHONY: leim
+.PHONY: leim semantic
 leim:
        cd ../leim && $(MAKE) $(MFLAGS) all EMACS="$(EMACS)"
 
+# FIXME.  Yuck.
+semantic:
+       case ${EMACS} in \
+         .*) EMACS="../${EMACS}" ;; \
+          *) EMACS="${EMACS}" ;; \
+       esac; \
+       cd ../admin/grammars && $(MAKE) $(MFLAGS) all EMACS="$${EMACS}"
+
 # Compile all Lisp files, but don't recompile those that are up to
 # date.  Some .el files don't get compiled because they set the
 # local variable no-byte-compile.

=== modified file 'lisp/cedet/ChangeLog'
--- a/lisp/cedet/ChangeLog      2013-11-16 20:30:18 +0000
+++ b/lisp/cedet/ChangeLog      2013-11-30 02:06:34 +0000
@@ -1,3 +1,25 @@
+2013-11-30  Glenn Morris  <address@hidden>
+
+       Stop keeping (most) generated cedet grammar files in the repository.
+       * semantic/bovine/grammar.el (bovine--make-parser-1):
+       New function, split from bovine-make-parsers.
+       (bovine-make-parsers): Use bovine--make-parser-1.
+       (bovine-batch-make-parser): New function.
+       * semantic/wisent/grammar.el (wisent--make-parser-1):
+       New function, split from wisent-make-parsers.
+       (wisent-make-parsers): Use wisent--make-parser-1.
+       (wisent-batch-make-parser): New function.
+       * semantic/db.el (semanticdb-save-all-db):
+       Avoid prompting in batch mode.
+       * semantic/grammar.el (semantic-grammar-footer-template):
+       Disable version-control and autoloads in the output.
+       (semantic-grammar-create-package):
+       Add option to return nil if output is up-to-date.
+       * semantic/bovine/c-by.el, semantic/bovine/make-by.el:
+       * semantic/bovine/scm-by.el, semantic/wisent/javat-wy.el:
+       * semantic/wisent/js-wy.el, semantic/wisent/python-wy.el:
+       * srecode/srt-wy.el: Remove generated files from repository.
+
 2013-11-16  Barry O'Reilly  <address@hidden>
 
        * semantic/fw.el (semantic-exit-on-input)

=== removed file 'lisp/cedet/semantic/bovine/c-by.el'
--- a/lisp/cedet/semantic/bovine/c-by.el        2013-05-24 07:01:49 +0000
+++ b/lisp/cedet/semantic/bovine/c-by.el        1970-01-01 00:00:00 +0000
@@ -1,2224 +0,0 @@
-;;; semantic/bovine/c-by.el --- Generated parser support file
-
-;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/c.by.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-(declare-function semantic-c-reconstitute-token "semantic/bovine/c"
-                 (tokenpart declmods typedecl))
-(declare-function semantic-c-reconstitute-template "semantic/bovine/c"
-                 (tag specifier))
-(declare-function semantic-expand-c-tag "semantic/bovine/c" (tag))
-(declare-function semantic-parse-region "semantic"
-                 (start end &optional nonterminal depth returnonerror))
-
-;;; Declarations
-;;
-(defconst semantic-c-by--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("extern" . EXTERN)
-     ("static" . STATIC)
-     ("const" . CONST)
-     ("volatile" . VOLATILE)
-     ("register" . REGISTER)
-     ("signed" . SIGNED)
-     ("unsigned" . UNSIGNED)
-     ("inline" . INLINE)
-     ("virtual" . VIRTUAL)
-     ("mutable" . MUTABLE)
-     ("explicit" . EXPLICIT)
-     ("struct" . STRUCT)
-     ("union" . UNION)
-     ("enum" . ENUM)
-     ("typedef" . TYPEDEF)
-     ("class" . CLASS)
-     ("typename" . TYPENAME)
-     ("namespace" . NAMESPACE)
-     ("using" . USING)
-     ("new" . NEW)
-     ("delete" . DELETE)
-     ("template" . TEMPLATE)
-     ("throw" . THROW)
-     ("reentrant" . REENTRANT)
-     ("try" . TRY)
-     ("catch" . CATCH)
-     ("operator" . OPERATOR)
-     ("public" . PUBLIC)
-     ("private" . PRIVATE)
-     ("protected" . PROTECTED)
-     ("friend" . FRIEND)
-     ("if" . IF)
-     ("else" . ELSE)
-     ("do" . DO)
-     ("while" . WHILE)
-     ("for" . FOR)
-     ("switch" . SWITCH)
-     ("case" . CASE)
-     ("default" . DEFAULT)
-     ("return" . RETURN)
-     ("break" . BREAK)
-     ("continue" . CONTINUE)
-     ("sizeof" . SIZEOF)
-     ("void" . VOID)
-     ("char" . CHAR)
-     ("wchar_t" . WCHAR)
-     ("short" . SHORT)
-     ("int" . INT)
-     ("long" . LONG)
-     ("float" . FLOAT)
-     ("double" . DOUBLE)
-     ("bool" . BOOL)
-     ("_P" . UNDERP)
-     ("__P" . UNDERUNDERP))
-   '(("__P" summary "Common macro to eliminate prototype compatibility on some 
compilers")
-     ("_P" summary "Common macro to eliminate prototype compatibility on some 
compilers")
-     ("bool" summary "Primitive boolean type")
-     ("double" summary "Primitive floating-point type (double-precision 64-bit 
IEEE 754)")
-     ("float" summary "Primitive floating-point type (single-precision 32-bit 
IEEE 754)")
-     ("long" summary "Integral primitive type (-9223372036854775808 to 
9223372036854775807)")
-     ("int" summary "Integral Primitive Type: (-2147483648 to 2147483647)")
-     ("short" summary "Integral Primitive Type: (-32768 to 32767)")
-     ("wchar_t" summary "Wide Character Type")
-     ("char" summary "Integral Character Type: (0 to 256)")
-     ("void" summary "Built in typeless type: void")
-     ("sizeof" summary "Compile time macro: sizeof(<type or variable>) // size 
in bytes")
-     ("continue" summary "Non-local continue within a loop (for, do/while): 
continue;")
-     ("break" summary "Non-local exit within a loop or switch (for, do/while, 
switch): break;")
-     ("return" summary "return <value>;")
-     ("default" summary "switch (<variable>) { case <constvalue>: code; ... 
default: code; }")
-     ("case" summary "switch (<variable>) { case <constvalue>: code; ... 
default: code; }")
-     ("switch" summary "switch (<variable>) { case <constvalue>: code; ... 
default: code; }")
-     ("for" summary "for(<init>; <condition>; <increment>) { code }")
-     ("while" summary "do { code } while (<condition>); or while (<condition>) 
{ code };")
-     ("do" summary " do { code } while (<condition>);")
-     ("else" summary "if (<condition>) { code } [ else { code } ]")
-     ("if" summary "if (<condition>) { code } [ else { code } ]")
-     ("friend" summary "friend class <CLASSNAME>")
-     ("catch" summary "try { <body> } catch { <catch code> }")
-     ("try" summary "try { <body> } catch { <catch code> }")
-     ("reentrant" summary "<type> <methoddef> (<method args>) reentrant ...")
-     ("throw" summary "<type> <methoddef> (<method args>) throw (<exception>) 
...")
-     ("template" summary "template <class TYPE ...> TYPE_OR_FUNCTION")
-     ("delete" summary "delete <object>;")
-     ("new" summary "new <classname>();")
-     ("using" summary "using <namespace>;")
-     ("namespace" summary "Namespace Declaration: namespace <name> { ... };")
-     ("typename" summary "typename is used to handle a qualified name as a 
typename;")
-     ("class" summary "Class Declaration: class <name>[:parents] { ... };")
-     ("typedef" summary "Arbitrary Type Declaration: typedef <typedeclaration> 
<name>;")
-     ("enum" summary "Enumeration Type Declaration: enum [name] { ... };")
-     ("union" summary "Union Type Declaration: union [name] { ... };")
-     ("struct" summary "Structure Type Declaration: struct [name] { ... };")
-     ("explicit" summary "Forbids implicit type conversion: explicit 
<constructor>")
-     ("mutable" summary "Member Declaration Modifier: mutable <type> <name> 
...")
-     ("virtual" summary "Method Modifier: virtual <type> <name>(...) ...")
-     ("inline" summary "Function Modifier: inline <return  type> <name>(...) 
{...};")
-     ("unsigned" summary "Numeric Type Modifier: unsigned <numeric type> 
<name> ...")
-     ("signed" summary "Numeric Type Modifier: signed <numeric type> <name> 
...")
-     ("register" summary "Declaration Modifier: register <type> <name> ...")
-     ("volatile" summary "Declaration Modifier: volatile <type> <name> ...")
-     ("const" summary "Declaration Modifier: const <type> <name> ...")
-     ("static" summary "Declaration Modifier: static <type> <name> ...")
-     ("extern" summary "Declaration Modifier: extern <type> <name> ...")))
-  "Table of language keywords.")
-
-(defconst semantic-c-by--token-table
-  (semantic-lex-make-type-table
-   '(("semantic-list"
-      (BRACKETS . "\\[\\]")
-      (PARENS . "()")
-      (VOID_BLCK . "^(void)$")
-      (BRACE_BLCK . "^{")
-      (PAREN_BLCK . "^(")
-      (BRACK_BLCK . "\\[.*\\]$"))
-     ("close-paren"
-      (RBRACE . "}")
-      (RPAREN . ")"))
-     ("open-paren"
-      (LBRACE . "{")
-      (LPAREN . "("))
-     ("symbol"
-      (RESTRICT . "\\<\\(__\\)?restrict\\>"))
-     ("number"
-      (ZERO . "^0$"))
-     ("string"
-      (CPP . "\"C\\+\\+\"")
-      (C . "\"C\""))
-     ("punctuation"
-      (OR . "\\`[|]\\'")
-      (HAT . "\\`\\^\\'")
-      (MOD . "\\`[%]\\'")
-      (TILDE . "\\`[~]\\'")
-      (COMA . "\\`[,]\\'")
-      (GREATER . "\\`[>]\\'")
-      (LESS . "\\`[<]\\'")
-      (EQUAL . "\\`[=]\\'")
-      (BANG . "\\`[!]\\'")
-      (MINUS . "\\`[-]\\'")
-      (PLUS . "\\`[+]\\'")
-      (DIVIDE . "\\`[/]\\'")
-      (AMPERSAND . "\\`[&]\\'")
-      (STAR . "\\`[*]\\'")
-      (SEMICOLON . "\\`[;]\\'")
-      (COLON . "\\`[:]\\'")
-      (PERIOD . "\\`[.]\\'")
-      (HASH . "\\`[#]\\'")))
-   'nil)
-  "Table of lexical tokens.")
-
-(defconst semantic-c-by--parse-table
-  `(
-    (bovine-toplevel
-     (declaration)
-     ) ;; end bovine-toplevel
-
-    (bovine-inner-scope
-     (codeblock)
-     ) ;; end bovine-inner-scope
-
-    (declaration
-     (macro)
-     (type)
-     (define)
-     (var-or-fun)
-     (extern-c)
-     (template)
-     (using)
-     ) ;; end declaration
-
-    (codeblock
-     (define)
-     (codeblock-var-or-fun)
-     (type)
-     (using)
-     ) ;; end codeblock
-
-    (extern-c-contents
-     (open-paren
-      ,(semantic-lambda
-       (list nil))
-      )
-     (declaration)
-     (close-paren
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end extern-c-contents
-
-    (extern-c
-     (EXTERN
-      string
-      "\"C\""
-      semantic-list
-      ,(semantic-lambda
-       (semantic-tag
-        "C"
-        'extern :members
-        (semantic-parse-region
-         (car
-          (nth 2 vals))
-         (cdr
-          (nth 2 vals))
-         'extern-c-contents
-         1)))
-      )
-     (EXTERN
-      string
-      "\"C\\+\\+\""
-      semantic-list
-      ,(semantic-lambda
-       (semantic-tag
-        "C"
-        'extern :members
-        (semantic-parse-region
-         (car
-          (nth 2 vals))
-         (cdr
-          (nth 2 vals))
-         'extern-c-contents
-         1)))
-      )
-     (EXTERN
-      string
-      "\"C\""
-      ,(semantic-lambda
-       (list nil))
-      )
-     (EXTERN
-      string
-      "\"C\\+\\+\""
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end extern-c
-
-    (macro
-     (spp-macro-def
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        (nth 0 vals) nil nil :constant-flag t))
-      )
-     (spp-system-include
-      ,(semantic-lambda
-       (semantic-tag-new-include
-        (nth 0 vals) t))
-      )
-     (spp-include
-      ,(semantic-lambda
-       (semantic-tag-new-include
-        (nth 0 vals) nil))
-      )
-     ) ;; end macro
-
-    (define
-      (spp-macro-def
-       ,(semantic-lambda
-        (semantic-tag-new-variable
-         (nth 0 vals) nil nil :constant-flag t))
-       )
-      (spp-macro-undef
-       ,(semantic-lambda
-        (list nil))
-       )
-      ) ;; end define
-
-    (unionparts
-     (semantic-list
-      ,(semantic-lambda
-       (semantic-parse-region
-        (car
-         (nth 0 vals))
-        (cdr
-         (nth 0 vals))
-        'classsubparts
-        1))
-      )
-     ) ;; end unionparts
-
-    (opt-symbol
-     (symbol)
-     ( ;;EMPTY
-      )
-     ) ;; end opt-symbol
-
-    (classsubparts
-     (open-paren
-      "{"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (close-paren
-      "}"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (class-protection
-      opt-symbol
-      punctuation
-      "\\`[:]\\'"
-      ,(semantic-lambda
-       (semantic-tag
-        (car
-         (nth 0 vals))
-        'label))
-      )
-     (var-or-fun)
-     (FRIEND
-      func-decl
-      ,(semantic-lambda
-       (semantic-tag
-        (car
-         (nth 1 vals))
-        'friend))
-      )
-     (FRIEND
-      CLASS
-      symbol
-      ,(semantic-lambda
-       (semantic-tag
-        (nth 2 vals)
-        'friend))
-      )
-     (type)
-     (define)
-     (template)
-     ( ;;EMPTY
-      )
-     ) ;; end classsubparts
-
-    (opt-class-parents
-     (punctuation
-      "\\`[:]\\'"
-      class-parents
-      opt-template-specifier
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end opt-class-parents
-
-    (one-class-parent
-     (opt-class-protection
-      opt-class-declmods
-      namespace-symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        "class" nil nil :protection
-        (car
-         (nth 0 vals))))
-      )
-     (opt-class-declmods
-      opt-class-protection
-      namespace-symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        "class" nil nil :protection
-        (car
-         (nth 1 vals))))
-      )
-     ) ;; end one-class-parent
-
-    (class-parents
-     (one-class-parent
-      punctuation
-      "\\`[,]\\'"
-      class-parents
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 2 vals)))
-      )
-     (one-class-parent
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end class-parents
-
-    (opt-class-declmods
-     (class-declmods
-      opt-class-declmods
-      ,(semantic-lambda
-       (list nil))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end opt-class-declmods
-
-    (class-declmods
-     (VIRTUAL)
-     ) ;; end class-declmods
-
-    (class-protection
-     (PUBLIC)
-     (PRIVATE)
-     (PROTECTED)
-     ) ;; end class-protection
-
-    (opt-class-protection
-     (class-protection
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list
-        "unspecified"))
-      )
-     ) ;; end opt-class-protection
-
-    (namespaceparts
-     (semantic-list
-      ,(semantic-lambda
-       (semantic-parse-region
-        (car
-         (nth 0 vals))
-        (cdr
-         (nth 0 vals))
-        'namespacesubparts
-        1))
-      )
-     ) ;; end namespaceparts
-
-    (namespacesubparts
-     (open-paren
-      "{"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (close-paren
-      "}"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (type)
-     (var-or-fun)
-     (define)
-     (class-protection
-      punctuation
-      "\\`[:]\\'"
-      ,(semantic-lambda
-       (semantic-tag
-        (car
-         (nth 0 vals))
-        'label))
-      )
-     (template)
-     (using)
-     (spp-include
-      ,(semantic-lambda
-       (semantic-tag
-        (nth 0 vals)
-        'include :inside-ns t))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end namespacesubparts
-
-    (enumparts
-     (semantic-list
-      ,(semantic-lambda
-       (semantic-parse-region
-        (car
-         (nth 0 vals))
-        (cdr
-         (nth 0 vals))
-        'enumsubparts
-        1))
-      )
-     ) ;; end enumparts
-
-    (enumsubparts
-     (symbol
-      opt-assign
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        (nth 0 vals)
-        "int"
-        (car
-         (nth 1 vals)) :constant-flag t))
-      )
-     (open-paren
-      "{"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (close-paren
-      "}"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (punctuation
-      "\\`[,]\\'"
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end enumsubparts
-
-    (opt-name
-     (symbol)
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list
-        ""))
-      )
-     ) ;; end opt-name
-
-    (typesimple
-     (struct-or-class
-      opt-class
-      opt-name
-      opt-template-specifier
-      opt-class-parents
-      semantic-list
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        (car
-         (nth 0 vals))
-        (let
-            (
-             (semantic-c-classname
-              (cons
-               (car
-                (nth 2 vals))
-               (car
-                (nth 0 vals)))))
-          (semantic-parse-region
-           (car
-            (nth 5 vals))
-           (cdr
-            (nth 5 vals))
-           'classsubparts
-           1))
-        (nth 4 vals) :template-specifier
-        (nth 3 vals) :parent
-        (car
-         (nth 1 vals))))
-      )
-     (struct-or-class
-      opt-class
-      opt-name
-      opt-template-specifier
-      opt-class-parents
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        (car
-         (nth 0 vals)) nil
-        (nth 4 vals) :template-specifier
-        (nth 3 vals) :prototype t :parent
-        (car
-         (nth 1 vals))))
-      )
-     (UNION
-      opt-class
-      opt-name
-      unionparts
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        (nth 0 vals)
-        (nth 3 vals) nil :parent
-        (car
-         (nth 1 vals))))
-      )
-     (ENUM
-      opt-class
-      opt-name
-      enumparts
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 2 vals))
-        (nth 0 vals)
-        (nth 3 vals) nil :parent
-        (car
-         (nth 1 vals))))
-      )
-     (TYPEDEF
-      declmods
-      typeformbase
-      cv-declmods
-      typedef-symbol-list
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 4 vals)
-        (nth 0 vals) nil
-        (list
-         (nth 2 vals))))
-      )
-     ) ;; end typesimple
-
-    (typedef-symbol-list
-     (typedefname
-      punctuation
-      "\\`[,]\\'"
-      typedef-symbol-list
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 2 vals)))
-      )
-     (typedefname
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end typedef-symbol-list
-
-    (typedefname
-     (opt-stars
-      symbol
-      opt-bits
-      opt-array
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)
-        (nth 1 vals)))
-      )
-     ) ;; end typedefname
-
-    (struct-or-class
-     (STRUCT)
-     (CLASS)
-     ) ;; end struct-or-class
-
-    (type
-     (typesimple
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (NAMESPACE
-      symbol
-      namespaceparts
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        (nth 0 vals)
-        (nth 2 vals) nil))
-      )
-     (NAMESPACE
-      namespaceparts
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        "unnamed"
-        (nth 0 vals)
-        (nth 1 vals) nil))
-      )
-     (NAMESPACE
-      symbol
-      punctuation
-      "\\`[=]\\'"
-      typeformbase
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        (nth 0 vals)
-        (list
-         (semantic-tag-new-type
-          (car
-           (nth 3 vals))
-          (nth 0 vals) nil nil)) nil :kind
-        'alias))
-      )
-     ) ;; end type
-
-    (using
-     (USING
-      usingname
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (semantic-tag
-        (car
-         (nth 1 vals))
-        'using :type
-        (nth 1 vals)))
-      )
-     ) ;; end using
-
-    (usingname
-     (typeformbase
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 0 vals))
-        "class" nil nil :prototype t))
-      )
-     (NAMESPACE
-      typeformbase
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 1 vals))
-        "namespace" nil nil :prototype t))
-      )
-     ) ;; end usingname
-
-    (template
-     (TEMPLATE
-      template-specifier
-      opt-friend
-      template-definition
-      ,(semantic-lambda
-       (semantic-c-reconstitute-template
-        (nth 3 vals)
-        (nth 1 vals)))
-      )
-     ) ;; end template
-
-    (opt-friend
-     (FRIEND)
-     ( ;;EMPTY
-      )
-     ) ;; end opt-friend
-
-    (opt-template-specifier
-     (template-specifier
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end opt-template-specifier
-
-    (template-specifier
-     (punctuation
-      "\\`[<]\\'"
-      template-specifier-types
-      punctuation
-      "\\`[>]\\'"
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     ) ;; end template-specifier
-
-    (template-specifier-types
-     (template-var
-      template-specifier-type-list
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end template-specifier-types
-
-    (template-specifier-type-list
-     (punctuation
-      "\\`[,]\\'"
-      template-specifier-types
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end template-specifier-type-list
-
-    (template-var
-     (template-type
-      opt-template-equal
-      ,(semantic-lambda
-       (cons
-        (car
-         (nth 0 vals))
-        (cdr
-         (nth 0 vals))))
-      )
-     (string
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     (number
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     (opt-stars
-      opt-ref
-      namespace-symbol
-      ,(semantic-lambda
-       (nth 2 vals))
-      )
-     (semantic-list
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     (SIZEOF
-      semantic-list
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ) ;; end template-var
-
-    (opt-template-equal
-     (punctuation
-      "\\`[=]\\'"
-      symbol
-      punctuation
-      "\\`[<]\\'"
-      template-specifier-types
-      punctuation
-      "\\`[>]\\'"
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     (punctuation
-      "\\`[=]\\'"
-      symbol
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end opt-template-equal
-
-    (template-type
-     (CLASS
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        "class" nil nil))
-      )
-     (STRUCT
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        "struct" nil nil))
-      )
-     (TYPENAME
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        "class" nil nil))
-      )
-     (declmods
-      typeformbase
-      cv-declmods
-      opt-stars
-      opt-ref
-      variablearg-opt-name
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 1 vals)) nil nil nil :constant-flag
-        (if
-            (member
-             "const"
-             (append
-              (nth 0 vals)
-              (nth 2 vals))) t nil) :typemodifiers
-        (delete
-         "const"
-         (append
-          (nth 0 vals)
-          (nth 2 vals))) :reference
-        (car
-         (nth 4 vals)) :pointer
-        (car
-         (nth 3 vals))))
-      )
-     ) ;; end template-type
-
-    (template-definition
-     (type
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (var-or-fun
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ) ;; end template-definition
-
-    (opt-stars
-     (punctuation
-      "\\`[*]\\'"
-      opt-starmod
-      opt-stars
-      ,(semantic-lambda
-       (list
-        (1+
-         (car
-          (nth 2 vals)))))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list
-        0))
-      )
-     ) ;; end opt-stars
-
-    (opt-starmod
-     (STARMOD
-      opt-starmod
-      ,(semantic-lambda
-       (cons
-        (car
-         (nth 0 vals))
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end opt-starmod
-
-    (STARMOD
-     (CONST)
-     ) ;; end STARMOD
-
-    (declmods
-     (DECLMOD
-      declmods
-      ,(semantic-lambda
-       (cons
-        (car
-         (nth 0 vals))
-        (nth 1 vals)))
-      )
-     (DECLMOD
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end declmods
-
-    (DECLMOD
-     (EXTERN)
-     (STATIC)
-     (CVDECLMOD)
-     (INLINE)
-     (REGISTER)
-     (FRIEND)
-     (TYPENAME)
-     (METADECLMOD)
-     (VIRTUAL)
-     ) ;; end DECLMOD
-
-    (metadeclmod
-     (METADECLMOD
-      ,(semantic-lambda)
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end metadeclmod
-
-    (CVDECLMOD
-     (CONST)
-     (VOLATILE)
-     ) ;; end CVDECLMOD
-
-    (cv-declmods
-     (CVDECLMOD
-      cv-declmods
-      ,(semantic-lambda
-       (cons
-        (car
-         (nth 0 vals))
-        (nth 1 vals)))
-      )
-     (CVDECLMOD
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end cv-declmods
-
-    (METADECLMOD
-     (VIRTUAL)
-     (MUTABLE)
-     ) ;; end METADECLMOD
-
-    (opt-ref
-     (punctuation
-      "\\`[&]\\'"
-      ,(semantic-lambda
-       (list
-        1))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list
-        0))
-      )
-     ) ;; end opt-ref
-
-    (typeformbase
-     (typesimple
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (STRUCT
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        (nth 0 vals) nil nil))
-      )
-     (UNION
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        (nth 0 vals) nil nil))
-      )
-     (ENUM
-      symbol
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 1 vals)
-        (nth 0 vals) nil nil))
-      )
-     (builtintype
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (symbol
-      template-specifier
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (nth 0 vals)
-        "class" nil nil :template-specifier
-        (nth 1 vals)))
-      )
-     (namespace-symbol-for-typeformbase
-      opt-template-specifier
-      ,(semantic-lambda
-       (semantic-tag-new-type
-        (car
-         (nth 0 vals))
-        "class" nil nil :template-specifier
-        (nth 1 vals)))
-      )
-     (symbol
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end typeformbase
-
-    (signedmod
-     (UNSIGNED)
-     (SIGNED)
-     ) ;; end signedmod
-
-    (builtintype-types
-     (VOID)
-     (CHAR)
-     (WCHAR)
-     (SHORT
-      INT
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         " "
-         (nth 1 vals))))
-      )
-     (SHORT)
-     (INT)
-     (LONG
-      INT
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         " "
-         (nth 1 vals))))
-      )
-     (FLOAT)
-     (DOUBLE)
-     (BOOL)
-     (LONG
-      DOUBLE
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         " "
-         (nth 1 vals))))
-      )
-     (LONG
-      LONG
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         " "
-         (nth 1 vals))))
-      )
-     (LONG)
-     ) ;; end builtintype-types
-
-    (builtintype
-     (signedmod
-      builtintype-types
-      ,(semantic-lambda
-       (list
-        (concat
-         (car
-          (nth 0 vals))
-         " "
-         (car
-          (nth 1 vals)))))
-      )
-     (builtintype-types
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (signedmod
-      ,(semantic-lambda
-       (list
-        (concat
-         (car
-          (nth 0 vals))
-         " int")))
-      )
-     ) ;; end builtintype
-
-    (codeblock-var-or-fun
-     (declmods
-      typeformbase
-      declmods
-      opt-ref
-      var-or-func-decl
-      ,(semantic-lambda
-       (semantic-c-reconstitute-token
-        (nth 4 vals)
-        (nth 0 vals)
-        (nth 1 vals)))
-      )
-     ) ;; end codeblock-var-or-fun
-
-    (var-or-fun
-     (codeblock-var-or-fun
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (declmods
-      var-or-func-decl
-      ,(semantic-lambda
-       (semantic-c-reconstitute-token
-        (nth 1 vals)
-        (nth 0 vals) nil))
-      )
-     ) ;; end var-or-fun
-
-    (var-or-func-decl
-     (func-decl
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (var-decl
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ) ;; end var-or-func-decl
-
-    (func-decl
-     (opt-stars
-      opt-class
-      opt-destructor
-      functionname
-      opt-template-specifier
-      opt-under-p
-      arg-list
-      opt-post-fcn-modifiers
-      opt-throw
-      opt-initializers
-      fun-or-proto-end
-      ,(semantic-lambda
-       (nth 3 vals)
-       (list
-        'function
-        (nth 1 vals)
-        (nth 2 vals)
-        (nth 6 vals)
-        (nth 8 vals)
-        (nth 7 vals))
-       (nth 0 vals)
-       (nth 10 vals)
-       (list
-        (nth 4 vals))
-       (nth 9 vals))
-      )
-     (opt-stars
-      opt-class
-      opt-destructor
-      functionname
-      opt-template-specifier
-      opt-under-p
-      opt-post-fcn-modifiers
-      opt-throw
-      opt-initializers
-      fun-try-end
-      ,(semantic-lambda
-       (nth 3 vals)
-       (list
-        'function
-        (nth 1 vals)
-        (nth 2 vals) nil
-        (nth 7 vals)
-        (nth 6 vals))
-       (nth 0 vals)
-       (nth 9 vals)
-       (list
-        (nth 4 vals))
-       (nth 8 vals))
-      )
-     ) ;; end func-decl
-
-    (var-decl
-     (varnamelist
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)
-        'variable))
-      )
-     ) ;; end var-decl
-
-    (opt-under-p
-     (UNDERP
-      ,(semantic-lambda
-       (list nil))
-      )
-     (UNDERUNDERP
-      ,(semantic-lambda
-       (list nil))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end opt-under-p
-
-    (opt-initializers
-     (punctuation
-      "\\`[:]\\'"
-      namespace-symbol
-      semantic-list
-      opt-initializers)
-     (punctuation
-      "\\`[,]\\'"
-      namespace-symbol
-      semantic-list
-      opt-initializers)
-     ( ;;EMPTY
-      )
-     ) ;; end opt-initializers
-
-    (opt-post-fcn-modifiers
-     (post-fcn-modifiers
-      opt-post-fcn-modifiers
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-post-fcn-modifiers
-
-    (post-fcn-modifiers
-     (REENTRANT)
-     (CONST)
-     ) ;; end post-fcn-modifiers
-
-    (opt-throw
-     (THROW
-      semantic-list
-      ,(lambda (vals start end)
-        (semantic-bovinate-from-nonterminal
-         (car
-          (nth 1 vals))
-         (cdr
-          (nth 1 vals))
-         'throw-exception-list))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end opt-throw
-
-    (throw-exception-list
-     (namespace-symbol
-      punctuation
-      "\\`[,]\\'"
-      throw-exception-list
-      ,(semantic-lambda
-       (cons
-        (car
-         (nth 0 vals))
-        (nth 2 vals)))
-      )
-     (namespace-symbol
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (symbol
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     (open-paren
-      "("
-      throw-exception-list
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (close-paren
-      ")"
-      ,(semantic-lambda)
-      )
-     ) ;; end throw-exception-list
-
-    (opt-bits
-     (punctuation
-      "\\`[:]\\'"
-      number
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-bits
-
-    (opt-array
-     (semantic-list
-      "\\[.*\\]$"
-      opt-array
-      ,(semantic-lambda
-       (list
-        (cons
-         1
-         (car
-          (nth 1 vals)))))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-array
-
-    (opt-assign
-     (punctuation
-      "\\`[=]\\'"
-      expression
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-assign
-
-    (opt-restrict
-     (symbol
-      "\\<\\(__\\)?restrict\\>")
-     ( ;;EMPTY
-      )
-     ) ;; end opt-restrict
-
-    (varname
-     (opt-stars
-      opt-restrict
-      namespace-symbol
-      opt-bits
-      opt-array
-      ,(semantic-lambda
-       (nth 2 vals)
-       (nth 0 vals)
-       (nth 3 vals)
-       (nth 4 vals))
-      )
-     ) ;; end varname
-
-    (variablearg
-     (declmods
-      typeformbase
-      cv-declmods
-      opt-ref
-      variablearg-opt-name
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        (list
-         (nth 4 vals))
-        (nth 1 vals) nil :constant-flag
-        (if
-            (member
-             "const"
-             (append
-              (nth 0 vals)
-              (nth 2 vals))) t nil) :typemodifiers
-        (delete
-         "const"
-         (append
-          (nth 0 vals)
-          (nth 2 vals))) :reference
-        (car
-         (nth 3 vals))))
-      )
-     ) ;; end variablearg
-
-    (variablearg-opt-name
-     (varname
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (opt-stars
-      ,(semantic-lambda
-       (list
-        "")
-       (nth 0 vals)
-       (list nil nil nil))
-      )
-     ) ;; end variablearg-opt-name
-
-    (varname-opt-initializer
-     (semantic-list)
-     (opt-assign)
-     ( ;;EMPTY
-      )
-     ) ;; end varname-opt-initializer
-
-    (varnamelist
-     (opt-ref
-      varname
-      varname-opt-initializer
-      punctuation
-      "\\`[,]\\'"
-      varnamelist
-      ,(semantic-lambda
-       (cons
-        (nth 1 vals)
-        (nth 4 vals)))
-      )
-     (opt-ref
-      varname
-      varname-opt-initializer
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ) ;; end varnamelist
-
-    (namespace-symbol
-     (symbol
-      opt-template-specifier
-      punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[:]\\'"
-      namespace-symbol
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         "::"
-         (car
-          (nth 4 vals)))))
-      )
-     (symbol
-      opt-template-specifier
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end namespace-symbol
-
-    (namespace-symbol-for-typeformbase
-     (symbol
-      opt-template-specifier
-      punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[:]\\'"
-      namespace-symbol-for-typeformbase
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         "::"
-         (car
-          (nth 4 vals)))))
-      )
-     (symbol
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end namespace-symbol-for-typeformbase
-
-    (namespace-opt-class
-     (symbol
-      punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[:]\\'"
-      namespace-opt-class
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         "::"
-         (car
-          (nth 3 vals)))))
-      )
-     (symbol
-      opt-template-specifier
-      punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[:]\\'"
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end namespace-opt-class
-
-    (opt-class
-     (namespace-opt-class
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-class
-
-    (opt-destructor
-     (punctuation
-      "\\`[~]\\'"
-      ,(semantic-lambda
-       (list t))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end opt-destructor
-
-    (arg-list
-     (semantic-list
-      "^("
-      knr-arguments
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (semantic-list
-      "^("
-      ,(semantic-lambda
-       (semantic-parse-region
-        (car
-         (nth 0 vals))
-        (cdr
-         (nth 0 vals))
-        'arg-sub-list
-        1))
-      )
-     (semantic-list
-      "^(void)$"
-      ,(semantic-lambda)
-      )
-     ) ;; end arg-list
-
-    (knr-varnamelist
-     (varname
-      punctuation
-      "\\`[,]\\'"
-      knr-varnamelist
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 2 vals)))
-      )
-     (varname
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end knr-varnamelist
-
-    (knr-one-variable-decl
-     (declmods
-      typeformbase
-      cv-declmods
-      knr-varnamelist
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        (nreverse
-         (nth 3 vals))
-        (nth 1 vals) nil :constant-flag
-        (if
-            (member
-             "const"
-             (append
-              (nth 2 vals))) t nil) :typemodifiers
-        (delete
-         "const"
-         (nth 2 vals))))
-      )
-     ) ;; end knr-one-variable-decl
-
-    (knr-arguments
-     (knr-one-variable-decl
-      punctuation
-      "\\`[;]\\'"
-      knr-arguments
-      ,(semantic-lambda
-       (append
-        (semantic-expand-c-tag
-         (nth 0 vals))
-        (nth 2 vals)))
-      )
-     (knr-one-variable-decl
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (semantic-expand-c-tag
-        (nth 0 vals)))
-      )
-     ) ;; end knr-arguments
-
-    (arg-sub-list
-     (variablearg
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     (punctuation
-      "\\`[.]\\'"
-      punctuation
-      "\\`[.]\\'"
-      punctuation
-      "\\`[.]\\'"
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        "..."
-        "vararg" nil))
-      )
-     (punctuation
-      "\\`[,]\\'"
-      ,(semantic-lambda
-       (list nil))
-      )
-     (open-paren
-      "("
-      ,(semantic-lambda
-       (list nil))
-      )
-     (close-paren
-      ")"
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end arg-sub-list
-
-    (operatorsym
-     (punctuation
-      "\\`[<]\\'"
-      punctuation
-      "\\`[<]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "<<="))
-      )
-     (punctuation
-      "\\`[>]\\'"
-      punctuation
-      "\\`[>]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        ">>="))
-      )
-     (punctuation
-      "\\`[<]\\'"
-      punctuation
-      "\\`[<]\\'"
-      ,(semantic-lambda
-       (list
-        "<<"))
-      )
-     (punctuation
-      "\\`[>]\\'"
-      punctuation
-      "\\`[>]\\'"
-      ,(semantic-lambda
-       (list
-        ">>"))
-      )
-     (punctuation
-      "\\`[=]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "=="))
-      )
-     (punctuation
-      "\\`[<]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "<="))
-      )
-     (punctuation
-      "\\`[>]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        ">="))
-      )
-     (punctuation
-      "\\`[!]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "!="))
-      )
-     (punctuation
-      "\\`[+]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "+="))
-      )
-     (punctuation
-      "\\`[-]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "-="))
-      )
-     (punctuation
-      "\\`[*]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "*="))
-      )
-     (punctuation
-      "\\`[/]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "/="))
-      )
-     (punctuation
-      "\\`[%]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "%="))
-      )
-     (punctuation
-      "\\`[&]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "&="))
-      )
-     (punctuation
-      "\\`[|]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "|="))
-      )
-     (punctuation
-      "\\`[-]\\'"
-      punctuation
-      "\\`[>]\\'"
-      punctuation
-      "\\`[*]\\'"
-      ,(semantic-lambda
-       (list
-        "->*"))
-      )
-     (punctuation
-      "\\`[-]\\'"
-      punctuation
-      "\\`[>]\\'"
-      ,(semantic-lambda
-       (list
-        "->"))
-      )
-     (semantic-list
-      "()"
-      ,(semantic-lambda
-       (list
-        "()"))
-      )
-     (semantic-list
-      "\\[\\]"
-      ,(semantic-lambda
-       (list
-        "[]"))
-      )
-     (punctuation
-      "\\`[<]\\'")
-     (punctuation
-      "\\`[>]\\'")
-     (punctuation
-      "\\`[*]\\'")
-     (punctuation
-      "\\`[+]\\'"
-      punctuation
-      "\\`[+]\\'"
-      ,(semantic-lambda
-       (list
-        "++"))
-      )
-     (punctuation
-      "\\`[+]\\'")
-     (punctuation
-      "\\`[-]\\'"
-      punctuation
-      "\\`[-]\\'"
-      ,(semantic-lambda
-       (list
-        "--"))
-      )
-     (punctuation
-      "\\`[-]\\'")
-     (punctuation
-      "\\`[&]\\'"
-      punctuation
-      "\\`[&]\\'"
-      ,(semantic-lambda
-       (list
-        "&&"))
-      )
-     (punctuation
-      "\\`[&]\\'")
-     (punctuation
-      "\\`[|]\\'"
-      punctuation
-      "\\`[|]\\'"
-      ,(semantic-lambda
-       (list
-        "||"))
-      )
-     (punctuation
-      "\\`[|]\\'")
-     (punctuation
-      "\\`[/]\\'")
-     (punctuation
-      "\\`[=]\\'")
-     (punctuation
-      "\\`[!]\\'")
-     (punctuation
-      "\\`[~]\\'")
-     (punctuation
-      "\\`[%]\\'")
-     (punctuation
-      "\\`[,]\\'")
-     (punctuation
-      "\\`\\^\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda
-       (list
-        "^="))
-      )
-     (punctuation
-      "\\`\\^\\'")
-     ) ;; end operatorsym
-
-    (functionname
-     (OPERATOR
-      operatorsym
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (semantic-list
-      ,(lambda (vals start end)
-        (semantic-bovinate-from-nonterminal
-         (car
-          (nth 0 vals))
-         (cdr
-          (nth 0 vals))
-         'function-pointer))
-      )
-     (symbol
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end functionname
-
-    (function-pointer
-     (open-paren
-      "("
-      punctuation
-      "\\`[*]\\'"
-      symbol
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (list
-        (concat
-         "*"
-         (nth 2 vals))))
-      )
-     (open-paren
-      "("
-      symbol
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (list
-        (nth 1 vals)))
-      )
-     ) ;; end function-pointer
-
-    (fun-or-proto-end
-     (punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (list t))
-      )
-     (semantic-list
-      ,(semantic-lambda
-       (list nil))
-      )
-     (punctuation
-      "\\`[=]\\'"
-      number
-      "^0$"
-      punctuation
-      "\\`[;]\\'"
-      ,(semantic-lambda
-       (list ':pure-virtual-flag))
-      )
-     (fun-try-end
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end fun-or-proto-end
-
-    (fun-try-end
-     (TRY
-      opt-initializers
-      semantic-list
-      "^{"
-      fun-try-several-catches
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end fun-try-end
-
-    (fun-try-several-catches
-     (CATCH
-      semantic-list
-      "^("
-      semantic-list
-      "^{"
-      fun-try-several-catches
-      ,(semantic-lambda)
-      )
-     (CATCH
-      semantic-list
-      "^{"
-      fun-try-several-catches
-      ,(semantic-lambda)
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end fun-try-several-catches
-
-    (type-cast
-     (semantic-list
-      ,(lambda (vals start end)
-        (semantic-bovinate-from-nonterminal
-         (car
-          (nth 0 vals))
-         (cdr
-          (nth 0 vals))
-         'type-cast-list))
-      )
-     ) ;; end type-cast
-
-    (type-cast-list
-     (open-paren
-      typeformbase
-      close-paren)
-     ) ;; end type-cast-list
-
-    (opt-stuff-after-symbol
-     (semantic-list
-      "^(")
-     (semantic-list
-      "\\[.*\\]$")
-     ( ;;EMPTY
-      )
-     ) ;; end opt-stuff-after-symbol
-
-    (multi-stage-dereference
-     (namespace-symbol
-      opt-stuff-after-symbol
-      punctuation
-      "\\`[.]\\'"
-      multi-stage-dereference)
-     (namespace-symbol
-      opt-stuff-after-symbol
-      punctuation
-      "\\`[-]\\'"
-      punctuation
-      "\\`[>]\\'"
-      multi-stage-dereference)
-     (namespace-symbol
-      opt-stuff-after-symbol)
-     ) ;; end multi-stage-dereference
-
-    (string-seq
-     (string
-      string-seq
-      ,(semantic-lambda
-       (list
-        (concat
-         (nth 0 vals)
-         (car
-          (nth 1 vals)))))
-      )
-     (string
-      ,(semantic-lambda
-       (list
-        (nth 0 vals)))
-      )
-     ) ;; end string-seq
-
-    (expr-start
-     (punctuation
-      "\\`[-]\\'")
-     (punctuation
-      "\\`[+]\\'")
-     (punctuation
-      "\\`[*]\\'")
-     (punctuation
-      "\\`[&]\\'")
-     ) ;; end expr-start
-
-    (expr-binop
-     (punctuation
-      "\\`[-]\\'")
-     (punctuation
-      "\\`[+]\\'")
-     (punctuation
-      "\\`[*]\\'")
-     (punctuation
-      "\\`[/]\\'")
-     (punctuation
-      "\\`[&]\\'"
-      punctuation
-      "\\`[&]\\'")
-     (punctuation
-      "\\`[&]\\'")
-     (punctuation
-      "\\`[|]\\'"
-      punctuation
-      "\\`[|]\\'")
-     (punctuation
-      "\\`[|]\\'")
-     ) ;; end expr-binop
-
-    (expression
-     (unaryexpression
-      expr-binop
-      unaryexpression
-      ,(semantic-lambda
-       (list
-        (identity start)
-        (identity end)))
-      )
-     (unaryexpression
-      ,(semantic-lambda
-       (list
-        (identity start)
-        (identity end)))
-      )
-     ) ;; end expression
-
-    (unaryexpression
-     (number)
-     (multi-stage-dereference)
-     (NEW
-      multi-stage-dereference)
-     (NEW
-      builtintype-types
-      semantic-list)
-     (namespace-symbol)
-     (string-seq)
-     (type-cast
-      expression)
-     (semantic-list
-      expression)
-     (semantic-list)
-     (expr-start
-      expression)
-     ) ;; end unaryexpression
-    )
-  "Parser table.")
-
-(defun semantic-c-by--install-parser ()
-  "Setup the Semantic Parser."
-  (setq semantic--parse-table semantic-c-by--parse-table
-       semantic-debug-parser-source "c.by"
-       semantic-debug-parser-class 'semantic-bovine-debug-parser
-       semantic-flex-keywords-obarray semantic-c-by--keyword-table
-       semantic-equivalent-major-modes '(c-mode c++-mode)
-       ))
-
-
-;;; Analyzers
-;;
-
-;;; Epilogue
-;;
-
-(provide 'semantic/bovine/c-by)
-
-;;; semantic/bovine/c-by.el ends here

=== modified file 'lisp/cedet/semantic/bovine/grammar.el'
--- a/lisp/cedet/semantic/bovine/grammar.el     2013-05-24 07:01:49 +0000
+++ b/lisp/cedet/semantic/bovine/grammar.el     2013-11-30 02:06:34 +0000
@@ -443,63 +443,100 @@
     )
   "Semantic grammar macros used in bovine grammars.")
 
+(defun bovine--make-parser-1 (infile &optional outdir)
+  (if outdir (setq outdir (file-name-directory (expand-file-name outdir))))
+  ;; It would be nicer to use a temp-buffer rather than find-file-noselect.
+  ;; The only thing stopping us is bovine-grammar-setupcode-builder's
+  ;; use of (buffer-name).  Perhaps that could be changed to
+  ;; (file-name-nondirectory (buffer-file-name)) ?
+;;  (with-temp-buffer
+;;    (insert-file-contents infile)
+;;    (bovine-grammar-mode)
+;;    (setq buffer-file-name (expand-file-name infile))
+;;    (if outdir (setq default-directory outdir))
+  (let ((packagename
+        ;; This is with-demoted-errors.
+        (condition-case err
+            (with-current-buffer (find-file-noselect infile)
+              (if outdir (setq default-directory outdir))
+              (semantic-grammar-create-package nil t))
+          (error (message "%s" (error-message-string err)) nil)))
+       lang filename copyright-end)
+    (when (and packagename
+              (string-match "^.*/\\(.*\\)-by\\.el\\'" packagename))
+      (setq lang (match-string 1 packagename))
+      (setq filename (expand-file-name (concat lang "-by.el") outdir))
+      (with-temp-file filename
+       (insert-file-contents filename)
+       ;; Fix copyright header:
+       (goto-char (point-min))
+       (re-search-forward "^;; Author:")
+       (setq copyright-end (match-beginning 0))
+       (re-search-forward "^;;; Code:\n")
+       (delete-region copyright-end (match-end 0))
+       (goto-char copyright-end)
+       (insert ";; This file is part of GNU Emacs.
+
+;; 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 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; This file was generated from admin/grammars/"
+               lang ".by.
+
+;;; Code:
+")
+       (goto-char (point-min))
+       (delete-region (point-min) (line-end-position))
+       (insert ";;; " packagename
+               " --- Generated parser support file")
+       (delete-trailing-whitespace)
+       (re-search-forward ";;; \\(.*\\) ends here")
+       (replace-match packagename nil nil nil 1)))))
+
 (defun bovine-make-parsers ()
-  "Generate Emacs' built-in Bovine-based parser files."
+  "Generate Emacs's built-in Bovine-based parser files."
   (interactive)
   (semantic-mode 1)
   ;; Loop through each .by file in current directory, and run
   ;; `semantic-grammar-batch-build-one-package' to build the grammar.
   (dolist (f (directory-files default-directory nil "\\.by\\'"))
-    (let ((packagename
-           (condition-case err
-               (with-current-buffer (find-file-noselect f)
-                 (semantic-grammar-create-package))
-             (error (message "%s" (error-message-string err)) nil)))
-         lang filename copyright-end)
-      (when (and packagename
-                (string-match "^.*/\\(.*\\)-by\\.el\\'" packagename))
-       (setq lang (match-string 1 packagename))
-       (setq filename (concat lang "-by.el"))
-       (with-temp-buffer
-         (insert-file-contents filename)
-         (setq buffer-file-name (expand-file-name filename))
-         ;; Fix copyright header:
-         (goto-char (point-min))
-         (re-search-forward "^;; Author:")
-         (setq copyright-end (match-beginning 0))
-         (re-search-forward "^;;; Code:\n")
-         (delete-region copyright-end (match-end 0))
-         (goto-char copyright-end)
-         (insert ";; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/"
-                 lang ".by.
-
-;;; Code:
-")
-         (goto-char (point-min))
-         (delete-region (point-min) (line-end-position))
-         (insert ";;; " packagename
-                 " --- Generated parser support file")
-         (delete-trailing-whitespace)
-         (re-search-forward ";;; \\(.*\\) ends here")
-         (replace-match packagename nil nil nil 1)
-         (save-buffer))))))
+    (bovine--make-parser-1 f)))
+
+
+(defun bovine-batch-make-parser (&optional infile outdir)
+  "Generate a Bovine parser from input INFILE, writing to OUTDIR.
+This is mainly intended for use in batch mode:
+
+emacs -batch -l semantic/bovine/grammar -f bovine-make-parser-batch \\
+   [-dir output-dir | -o output-file] file.by
+
+If -o is supplied, only the directory part is used."
+  (semantic-mode 1)
+  (when (and noninteractive (not infile))
+    (let (arg)
+      (while command-line-args-left
+       (setq arg (pop command-line-args-left))
+       (cond ((string-equal arg "-dir")
+              (setq outdir (pop command-line-args-left)))
+             ((string-equal arg "-o")
+              (setq outdir (file-name-directory (pop command-line-args-left))))
+             (t (setq infile arg))))))
+  (or infile (error "No input file specified"))
+  (or (file-readable-p infile)
+      (error "Input file `%s' not readable" infile))
+  (bovine--make-parser-1 infile outdir))
 
 (provide 'semantic/bovine/grammar)
 

=== removed file 'lisp/cedet/semantic/bovine/make-by.el'
--- a/lisp/cedet/semantic/bovine/make-by.el     2013-01-01 09:11:05 +0000
+++ b/lisp/cedet/semantic/bovine/make-by.el     1970-01-01 00:00:00 +0000
@@ -1,391 +0,0 @@
-;;; semantic/bovine/make-by.el --- Generated parser support file
-
-;; Copyright (C) 1999-2004, 2008-2013 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/make.by.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-
-;;; Declarations
-;;
-(defconst semantic-make-by--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("if" . IF)
-     ("ifdef" . IFDEF)
-     ("ifndef" . IFNDEF)
-     ("ifeq" . IFEQ)
-     ("ifneq" . IFNEQ)
-     ("else" . ELSE)
-     ("endif" . ENDIF)
-     ("include" . INCLUDE))
-   '(("include" summary "Macro: include filename1 filename2 ...")
-     ("ifneq" summary "Conditional: ifneq (expression) ... else ... endif")
-     ("ifeq" summary "Conditional: ifeq (expression) ... else ... endif")
-     ("ifndef" summary "Conditional: ifndef (expression) ... else ... endif")
-     ("ifdef" summary "Conditional: ifdef (expression) ... else ... endif")
-     ("endif" summary "Conditional: if (expression) ... else ... endif")
-     ("else" summary "Conditional: if (expression) ... else ... endif")
-     ("if" summary "Conditional: if (expression) ... else ... endif")))
-  "Table of language keywords.")
-
-(defconst semantic-make-by--token-table
-  (semantic-lex-make-type-table
-   '(("punctuation"
-      (BACKSLASH . "\\`[\\]\\'")
-      (DOLLAR . "\\`[$]\\'")
-      (EQUAL . "\\`[=]\\'")
-      (PLUS . "\\`[+]\\'")
-      (COLON . "\\`[:]\\'")))
-   'nil)
-  "Table of lexical tokens.")
-
-(defconst semantic-make-by--parse-table
-  `(
-    (bovine-toplevel
-     (Makefile)
-     ) ;; end bovine-toplevel
-
-    (Makefile
-     (bol
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (bol
-      variable
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (bol
-      rule
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (bol
-      conditional
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (bol
-      include
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (whitespace
-      ,(semantic-lambda
-       (list nil))
-      )
-     (newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end Makefile
-
-    (variable
-     (symbol
-      opt-whitespace
-      equals
-      opt-whitespace
-      element-list
-      ,(semantic-lambda
-       (semantic-tag-new-variable
-        (nth 0 vals) nil
-        (nth 4 vals)))
-      )
-     ) ;; end variable
-
-    (rule
-     (targets
-      opt-whitespace
-      colons
-      opt-whitespace
-      element-list
-      commands
-      ,(semantic-lambda
-       (semantic-tag-new-function
-        (nth 0 vals) nil
-        (nth 4 vals)))
-      )
-     ) ;; end rule
-
-    (targets
-     (target
-      opt-whitespace
-      targets
-      ,(semantic-lambda
-       (list
-        (car
-         (nth 0 vals))
-        (car
-         (nth 2 vals))))
-      )
-     (target
-      ,(semantic-lambda
-       (list
-        (car
-         (nth 0 vals))))
-      )
-     ) ;; end targets
-
-    (target
-     (sub-target
-      target
-      ,(semantic-lambda
-       (list
-        (concat
-         (car
-          (nth 0 vals))
-         (car
-          (nth 2 vals)))))
-      )
-     (sub-target
-      ,(semantic-lambda
-       (list
-        (car
-         (nth 0 vals))))
-      )
-     ) ;; end target
-
-    (sub-target
-     (symbol)
-     (string)
-     (varref)
-     ) ;; end sub-target
-
-    (conditional
-     (IF
-      some-whitespace
-      symbol
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (IFDEF
-      some-whitespace
-      symbol
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (IFNDEF
-      some-whitespace
-      symbol
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (IFEQ
-      some-whitespace
-      expression
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (IFNEQ
-      some-whitespace
-      expression
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (ELSE
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     (ENDIF
-      newline
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end conditional
-
-    (expression
-     (semantic-list)
-     ) ;; end expression
-
-    (include
-     (INCLUDE
-      some-whitespace
-      element-list
-      ,(semantic-lambda
-       (semantic-tag-new-include
-        (nth 2 vals) nil))
-      )
-     ) ;; end include
-
-    (equals
-     (punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda)
-      )
-     (punctuation
-      "\\`[+]\\'"
-      punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda)
-      )
-     (punctuation
-      "\\`[=]\\'"
-      ,(semantic-lambda)
-      )
-     ) ;; end equals
-
-    (colons
-     (punctuation
-      "\\`[:]\\'"
-      punctuation
-      "\\`[:]\\'"
-      ,(semantic-lambda)
-      )
-     (punctuation
-      "\\`[:]\\'"
-      ,(semantic-lambda)
-      )
-     ) ;; end colons
-
-    (element-list
-     (elements
-      newline
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ) ;; end element-list
-
-    (elements
-     (element
-      some-whitespace
-      elements
-      ,(semantic-lambda
-       (nth 0 vals)
-       (nth 2 vals))
-      )
-     (element
-      ,(semantic-lambda
-       (nth 0 vals))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end elements
-
-    (element
-     (sub-element
-      element
-      ,(semantic-lambda
-       (list
-        (concat
-         (car
-          (nth 0 vals))
-         (car
-          (nth 1 vals)))))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end element
-
-    (sub-element
-     (symbol)
-     (string)
-     (punctuation)
-     (semantic-list
-      ,(semantic-lambda
-       (list
-        (buffer-substring-no-properties
-         (identity start)
-         (identity end))))
-      )
-     ) ;; end sub-element
-
-    (varref
-     (punctuation
-      "\\`[$]\\'"
-      semantic-list
-      ,(semantic-lambda
-       (list
-        (buffer-substring-no-properties
-         (identity start)
-         (identity end))))
-      )
-     ) ;; end varref
-
-    (commands
-     (bol
-      shell-command
-      newline
-      commands
-      ,(semantic-lambda
-       (list
-        (nth 0 vals))
-       (nth 1 vals))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end commands
-
-    (opt-whitespace
-     (some-whitespace
-      ,(semantic-lambda
-       (list nil))
-      )
-     ( ;;EMPTY
-      )
-     ) ;; end opt-whitespace
-
-    (some-whitespace
-     (whitespace
-      some-whitespace
-      ,(semantic-lambda
-       (list nil))
-      )
-     (whitespace
-      ,(semantic-lambda
-       (list nil))
-      )
-     ) ;; end some-whitespace
-    )
-  "Parser table.")
-
-(defun semantic-make-by--install-parser ()
-  "Setup the Semantic Parser."
-  (setq semantic--parse-table semantic-make-by--parse-table
-       semantic-debug-parser-source "make.by"
-       semantic-debug-parser-class 'semantic-bovine-debug-parser
-       semantic-flex-keywords-obarray semantic-make-by--keyword-table
-       ))
-
-
-;;; Analyzers
-;;
-
-;;; Epilogue
-;;
-
-(provide 'semantic/bovine/make-by)
-
-;;; semantic/bovine/make-by.el ends here

=== removed file 'lisp/cedet/semantic/bovine/scm-by.el'
--- a/lisp/cedet/semantic/bovine/scm-by.el      2013-01-01 09:11:05 +0000
+++ b/lisp/cedet/semantic/bovine/scm-by.el      1970-01-01 00:00:00 +0000
@@ -1,196 +0,0 @@
-;;; semantic/bovine/scm-by.el --- Generated parser support file
-
-;; Copyright (C) 2001, 2003, 2009-2013 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/scm.by.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-
-;;; Declarations
-;;
-(defconst semantic-scm-by--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("define" . DEFINE)
-     ("define-module" . DEFINE-MODULE)
-     ("load" . LOAD))
-   '(("load" summary "Function: (load \"filename\")")
-     ("define-module" summary "Function: (define-module (name arg1 ...)) ")
-     ("define" summary "Function: (define symbol expression)")))
-  "Table of language keywords.")
-
-(defconst semantic-scm-by--token-table
-  (semantic-lex-make-type-table
-   '(("close-paren"
-      (CLOSEPAREN . ")"))
-     ("open-paren"
-      (OPENPAREN . "(")))
-   'nil)
-  "Table of lexical tokens.")
-
-(defconst semantic-scm-by--parse-table
-  `(
-    (bovine-toplevel
-     (scheme)
-     ) ;; end bovine-toplevel
-
-    (scheme
-     (semantic-list
-      ,(lambda (vals start end)
-        (semantic-bovinate-from-nonterminal
-         (car
-          (nth 0 vals))
-         (cdr
-          (nth 0 vals))
-         'scheme-list))
-      )
-     ) ;; end scheme
-
-    (scheme-list
-     (open-paren
-      "("
-      scheme-in-list
-      close-paren
-      ")"
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     ) ;; end scheme-list
-
-    (scheme-in-list
-     (DEFINE
-       symbol
-       expression
-       ,(semantic-lambda
-        (semantic-tag-new-variable
-         (nth 1 vals) nil
-         (nth 2 vals)))
-       )
-     (DEFINE
-       name-args
-       opt-doc
-       sequence
-       ,(semantic-lambda
-        (semantic-tag-new-function
-         (car
-          (nth 1 vals)) nil
-         (cdr
-          (nth 1 vals))))
-       )
-     (DEFINE-MODULE
-       name-args
-       ,(semantic-lambda
-        (semantic-tag-new-package
-         (nth
-          (length
-           (nth 1 vals))
-          (nth 1 vals)) nil))
-       )
-     (LOAD
-      string
-      ,(semantic-lambda
-       (semantic-tag-new-include
-        (file-name-nondirectory
-         (read
-          (nth 1 vals)))
-        (read
-         (nth 1 vals))))
-      )
-     (symbol
-      ,(semantic-lambda
-       (semantic-tag-new-code
-        (nth 0 vals) nil))
-      )
-     ) ;; end scheme-in-list
-
-    (name-args
-     (semantic-list
-      ,(lambda (vals start end)
-        (semantic-bovinate-from-nonterminal
-         (car
-          (nth 0 vals))
-         (cdr
-          (nth 0 vals))
-         'name-arg-expand))
-      )
-     ) ;; end name-args
-
-    (name-arg-expand
-     (open-paren
-      name-arg-expand
-      ,(semantic-lambda
-       (nth 1 vals))
-      )
-     (symbol
-      name-arg-expand
-      ,(semantic-lambda
-       (cons
-        (nth 0 vals)
-        (nth 1 vals)))
-      )
-     ( ;;EMPTY
-      ,(semantic-lambda)
-      )
-     ) ;; end name-arg-expand
-
-    (opt-doc
-     (string)
-     ( ;;EMPTY
-      )
-     ) ;; end opt-doc
-
-    (sequence
-     (expression
-      sequence)
-     (expression)
-     ) ;; end sequence
-
-    (expression
-     (symbol)
-     (semantic-list)
-     (string)
-     (number)
-     ) ;; end expression
-    )
-  "Parser table.")
-
-(defun semantic-scm-by--install-parser ()
-  "Setup the Semantic Parser."
-  (setq semantic--parse-table semantic-scm-by--parse-table
-       semantic-debug-parser-source "scheme.by"
-       semantic-debug-parser-class 'semantic-bovine-debug-parser
-       semantic-flex-keywords-obarray semantic-scm-by--keyword-table
-       ))
-
-
-;;; Analyzers
-;;
-
-;;; Epilogue
-;;
-
-(provide 'semantic/bovine/scm-by)
-
-;;; semantic/bovine/scm-by.el ends here

=== modified file 'lisp/cedet/semantic/db.el'
--- a/lisp/cedet/semantic/db.el 2013-06-02 13:33:09 +0000
+++ b/lisp/cedet/semantic/db.el 2013-11-30 02:06:34 +0000
@@ -697,7 +697,7 @@
   (interactive)
   (unless noninteractive
     (message "Saving tag summaries..."))
-  (let ((semanticdb--inhibit-make-directory nil))
+  (let ((semanticdb--inhibit-make-directory noninteractive))
     (mapc 'semanticdb-save-db semanticdb-database-list))
   (unless noninteractive
     (message "Saving tag summaries...done")))

=== modified file 'lisp/cedet/semantic/grammar.el'
--- a/lisp/cedet/semantic/grammar.el    2013-10-30 06:31:15 +0000
+++ b/lisp/cedet/semantic/grammar.el    2013-11-30 02:06:34 +0000
@@ -33,6 +33,8 @@
 (require 'semantic/wisent)
 (require 'semantic/ctxt)
 (require 'semantic/format)
+;; FIXME this is a generated file, but we need to load this file to
+;; generate it!
 (require 'semantic/grammar-wy)
 (require 'semantic/idle)
 (require 'help-fns)
@@ -605,6 +607,11 @@
 
 \(provide '" libr ")
 
+;; Local Variables:
+;; version-control: never
+;; no-update-autoloads: t
+;; End:
+
 ;;; " file " ends here
 ")
   "Generated footer template.
@@ -822,9 +829,10 @@
       (noninteractive)
     noninteractive))
 
-(defun semantic-grammar-create-package (&optional force)
+(defun semantic-grammar-create-package (&optional force uptodate)
   "Create package Lisp code from grammar in current buffer.
-Does nothing if the Lisp code seems up to date.
+If the Lisp code seems up to date, do nothing (if UPTODATE
+is non-nil, return nil in such cases).
 If optional argument FORCE is non-nil, unconditionally re-generate the
 Lisp code."
   (interactive "P")
@@ -854,7 +862,12 @@
              (file-newer-than-file-p
               (buffer-file-name semantic--grammar-output-buffer)
               (buffer-file-name semantic--grammar-input-buffer)))
-        (message "Package `%s' is up to date." semantic--grammar-package)
+       (progn
+         (message "Package `%s' is up to date." semantic--grammar-package)
+         ;; It would be better if this were always the case, IMO,
+         ;; but the (unspecified) return value of this function is
+         ;; assumed to be non-nil in some places, it seems.
+         (if uptodate (setq output nil)))
       ;; Create the package
       (set-buffer semantic--grammar-output-buffer)
       ;; Use Unix EOLs, so that the file is portable to all platforms.
@@ -1914,6 +1927,7 @@
 
 (provide 'semantic/grammar)
 
+
 ;; Local variables:
 ;; generated-autoload-load-name: "semantic/grammar"
 ;; End:

=== modified file 'lisp/cedet/semantic/wisent/grammar.el'
--- a/lisp/cedet/semantic/wisent/grammar.el     2013-05-11 23:55:46 +0000
+++ b/lisp/cedet/semantic/wisent/grammar.el     2013-11-30 02:06:34 +0000
@@ -473,6 +473,54 @@
 \;; 2009, 2010 Python Software Foundation; All Rights Reserved"
      ,wisent-make-parsers--python-license)))
 
+;; Cf bovine--make-parser-1.
+(defun wisent--make-parser-1 (infile &optional outdir)
+  (if outdir (setq outdir (file-name-directory (expand-file-name outdir))))
+  (let ((packagename
+        ;; This is with-demoted-errors.
+        (condition-case err
+            (with-current-buffer (find-file-noselect infile)
+              (if outdir (setq default-directory outdir))
+              (semantic-grammar-create-package nil t))
+          (error (message "%s" (error-message-string err)) nil)))
+       output-data)
+    (when (setq output-data (assoc packagename 
wisent-make-parsers--parser-file-name))
+      (let ((additional-copyright (nth 1 output-data))
+           (additional-license   (nth 2 output-data))
+           (filename (expand-file-name
+                      (progn (string-match ".*/\\(.*\\)" packagename)
+                             (match-string 1 packagename))
+                      outdir))
+           copyright-end)
+       ;; Touch up the generated parsers for Emacs integration.
+       (with-temp-file filename
+         (insert-file-contents filename)
+         ;; Fix copyright header:
+         (goto-char (point-min))
+         (when additional-copyright
+           (re-search-forward "Copyright (C).*$")
+           (insert "\n;; " additional-copyright))
+         (re-search-forward "^;; Author:")
+         (setq copyright-end (match-beginning 0))
+         (re-search-forward "^;;; Code:\n")
+         (delete-region copyright-end (match-end 0))
+         (goto-char copyright-end)
+         (insert wisent-make-parsers--emacs-license)
+         (insert "\n\n;;; Commentary:
+;;
+;; This file was generated from admin/grammars/"
+                 (file-name-nondirectory infile) ".")
+         (when additional-license
+           (insert "\n" additional-license))
+         (insert "\n\n;;; Code:\n")
+         (goto-char (point-min))
+         (delete-region (point-min) (line-end-position))
+         (insert ";;; " packagename
+                 " --- Generated parser support file")
+         (re-search-forward ";;; \\(.*\\) ends here")
+         (replace-match packagename nil nil nil 1)
+         (delete-trailing-whitespace))))))
+
 (defun wisent-make-parsers ()
   "Generate Emacs' built-in Wisent-based parser files."
   (interactive)
@@ -480,46 +528,32 @@
   ;; Loop through each .wy file in current directory, and run
   ;; `semantic-grammar-batch-build-one-package' to build the grammar.
   (dolist (f (directory-files default-directory nil "\\.wy\\'"))
-    (let ((packagename
-           (condition-case err
-               (with-current-buffer (find-file-noselect f)
-                 (semantic-grammar-create-package))
-             (error (message "%s" (error-message-string err)) nil)))
-         output-data)
-      (when (setq output-data (assoc packagename 
wisent-make-parsers--parser-file-name))
-       (let ((additional-copyright (nth 1 output-data))
-             (additional-license   (nth 2 output-data))
-             (filename (progn (string-match ".*/\\(.*\\)" packagename) 
(match-string 1 packagename)))
-             copyright-end)
-         ;; Touch up the generated parsers for Emacs integration.
-         (with-temp-buffer
-           (insert-file-contents filename)
-           ;; Fix copyright header:
-           (goto-char (point-min))
-           (when additional-copyright
-             (re-search-forward "Copyright (C).*$")
-             (insert "\n;; " additional-copyright))
-           (re-search-forward "^;; Author:")
-           (setq copyright-end (match-beginning 0))
-           (re-search-forward "^;;; Code:\n")
-           (delete-region copyright-end (match-end 0))
-           (goto-char copyright-end)
-           (insert wisent-make-parsers--emacs-license)
-           (insert "\n\n;;; Commentary:
-;;
-;; This file was generated from admin/grammars/"
-                       f ".")
-           (when additional-license
-             (insert "\n" additional-license))
-           (insert "\n\n;;; Code:\n")
-           (goto-char (point-min))
-           (delete-region (point-min) (line-end-position))
-           (insert ";;; " packagename
-                   " --- Generated parser support file")
-           (re-search-forward ";;; \\(.*\\) ends here")
-           (replace-match packagename nil nil nil 1)
-           (delete-trailing-whitespace)
-           (write-region nil nil (expand-file-name filename))))))))
+    (wisent--make-parser-1 f)))
+
+
+(defun wisent-batch-make-parser (&optional infile outdir)
+  "Generate a Wisent parser from input INFILE, writing to OUTDIR.
+This is mainly intended for use in batch mode:
+
+emacs -batch -l semantic/wisent/grammar -f wisent-make-parser-batch \\
+   [-dir output-dir | -o output-file] file.by
+
+If -o is supplied, only the directory part is used."
+  (semantic-mode 1)
+  (when (and noninteractive (not infile))
+    (let (arg)
+      (while command-line-args-left
+       (setq arg (pop command-line-args-left))
+       (cond ((string-equal arg "-dir")
+              (setq outdir (pop command-line-args-left)))
+             ((string-equal arg "-o")
+              (setq outdir (file-name-directory (pop command-line-args-left))))
+             (t (setq infile arg))))))
+  (or infile (error "No input file specified"))
+  (or (file-readable-p infile)
+      (error "Input file `%s' not readable" infile))
+  (wisent--make-parser-1 infile outdir))
+
 
 (provide 'semantic/wisent/grammar)
 

=== removed file 'lisp/cedet/semantic/wisent/javat-wy.el'
--- a/lisp/cedet/semantic/wisent/javat-wy.el    2013-05-24 07:01:49 +0000
+++ b/lisp/cedet/semantic/wisent/javat-wy.el    1970-01-01 00:00:00 +0000
@@ -1,688 +0,0 @@
-;;; semantic/wisent/javat-wy.el --- Generated parser support file
-
-;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/java-tags.wy.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-(declare-function semantic-parse-region "semantic"
-                 (start end &optional nonterminal depth returnonerror))
-
-;;; Declarations
-;;
-(defconst wisent-java-tags-wy--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("abstract" . ABSTRACT)
-     ("boolean" . BOOLEAN)
-     ("break" . BREAK)
-     ("byte" . BYTE)
-     ("case" . CASE)
-     ("catch" . CATCH)
-     ("char" . CHAR)
-     ("class" . CLASS)
-     ("const" . CONST)
-     ("continue" . CONTINUE)
-     ("default" . DEFAULT)
-     ("do" . DO)
-     ("double" . DOUBLE)
-     ("else" . ELSE)
-     ("extends" . EXTENDS)
-     ("final" . FINAL)
-     ("finally" . FINALLY)
-     ("float" . FLOAT)
-     ("for" . FOR)
-     ("goto" . GOTO)
-     ("if" . IF)
-     ("implements" . IMPLEMENTS)
-     ("import" . IMPORT)
-     ("instanceof" . INSTANCEOF)
-     ("int" . INT)
-     ("interface" . INTERFACE)
-     ("long" . LONG)
-     ("native" . NATIVE)
-     ("new" . NEW)
-     ("package" . PACKAGE)
-     ("private" . PRIVATE)
-     ("protected" . PROTECTED)
-     ("public" . PUBLIC)
-     ("return" . RETURN)
-     ("short" . SHORT)
-     ("static" . STATIC)
-     ("strictfp" . STRICTFP)
-     ("super" . SUPER)
-     ("switch" . SWITCH)
-     ("synchronized" . SYNCHRONIZED)
-     ("this" . THIS)
-     ("throw" . THROW)
-     ("throws" . THROWS)
-     ("transient" . TRANSIENT)
-     ("try" . TRY)
-     ("void" . VOID)
-     ("volatile" . VOLATILE)
-     ("while" . WHILE)
-     ("@author" . _AUTHOR)
-     ("@version" . _VERSION)
-     ("@param" . _PARAM)
-     ("@return" . _RETURN)
-     ("@exception" . _EXCEPTION)
-     ("@throws" . _THROWS)
-     ("@see" . _SEE)
-     ("@since" . _SINCE)
-     ("@serial" . _SERIAL)
-     ("@serialData" . _SERIALDATA)
-     ("@serialField" . _SERIALFIELD)
-     ("@deprecated" . _DEPRECATED))
-   '(("@deprecated" javadoc
-      (seq 12 usage
-          (type function variable)
-          opt t))
-     ("@serialField" javadoc
-      (seq 11 usage
-          (variable)
-          opt t))
-     ("@serialData" javadoc
-      (seq 10 usage
-          (function)
-          opt t))
-     ("@serial" javadoc
-      (seq 9 usage
-          (variable)
-          opt t))
-     ("@since" javadoc
-      (seq 8 usage
-          (type function variable)
-          opt t))
-     ("@see" javadoc
-      (seq 7 usage
-          (type function variable)
-          opt t with-ref t))
-     ("@throws" javadoc
-      (seq 6 usage
-          (function)
-          with-name t))
-     ("@exception" javadoc
-      (seq 5 usage
-          (function)
-          with-name t))
-     ("@return" javadoc
-      (seq 4 usage
-          (function)))
-     ("@param" javadoc
-      (seq 3 usage
-          (function)
-          with-name t))
-     ("@version" javadoc
-      (seq 2 usage
-          (type)))
-     ("@author" javadoc
-      (seq 1 usage
-          (type)))
-     ("while" summary "while (<expr>) <stmt> | do <stmt> while (<expr>);")
-     ("volatile" summary "Field declaration modifier: volatile <type> <name> 
...")
-     ("void" summary "Method return type: void <name> ...")
-     ("try" summary "try {<stmts>} [catch(<parm>) {<stmts>} ...] [finally 
{<stmts>}]")
-     ("transient" summary "Field declaration modifier: transient <type> <name> 
...")
-     ("throws" summary "Method|Constructor declaration: throws <classType>, 
...")
-     ("throw" summary "throw <expr> ;")
-     ("synchronized" summary "synchronized (<expr>) ... | Method decl. 
modifier: synchronized <type> <name> ...")
-     ("switch" summary "switch(<expr>) {[case <const-expr>: <stmts> ...] 
[default: <stmts>]}")
-     ("strictfp" summary "Declaration modifier: strictfp 
{class|interface|<type>} <name> ...")
-     ("static" summary "Declaration modifier: static {class|interface|<type>} 
<name> ...")
-     ("short" summary "Integral primitive type (-32768 to 32767)")
-     ("return" summary "return [<expr>] ;")
-     ("public" summary "Access level modifier: public {class|interface|<type>} 
<name> ...")
-     ("protected" summary "Access level modifier: protected 
{class|interface|<type>} <name> ...")
-     ("private" summary "Access level modifier: private 
{class|interface|<type>} <name> ...")
-     ("package" summary "Package declaration: package <name>")
-     ("native" summary "Method declaration modifier: native <type> <name> ...")
-     ("long" summary "Integral primitive type (-9223372036854775808 to 
9223372036854775807)")
-     ("interface" summary "Interface declaration: interface <name>")
-     ("int" summary "Integral primitive type (-2147483648 to 2147483647)")
-     ("import" summary "Import package declarations: import <package>")
-     ("implements" summary "Class SuperInterfaces declaration: implements 
<name> [, ...]")
-     ("if" summary "if (<expr>) <stmt> [else <stmt>]")
-     ("goto" summary "Unused reserved word")
-     ("for" summary "for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>")
-     ("float" summary "Primitive floating-point type (single-precision 32-bit 
IEEE 754)")
-     ("finally" summary "try {<stmts>} ... finally {<stmts>}")
-     ("final" summary "Class|Member declaration modifier: final {class|<type>} 
<name> ...")
-     ("extends" summary "SuperClass|SuperInterfaces declaration: extends 
<name> [, ...]")
-     ("else" summary "if (<expr>) <stmt> else <stmt>")
-     ("double" summary "Primitive floating-point type (double-precision 64-bit 
IEEE 754)")
-     ("do" summary "do <stmt> while (<expr>);")
-     ("default" summary "switch(<expr>) { ... default: <stmts>}")
-     ("continue" summary "continue [<label>] ;")
-     ("const" summary "Unused reserved word")
-     ("class" summary "Class declaration: class <name>")
-     ("char" summary "Integral primitive type (0 to 65535)")
-     ("catch" summary "try {<stmts>} catch(<parm>) {<stmts>} ... ")
-     ("case" summary "switch(<expr>) {case <const-expr>: <stmts> ... }")
-     ("byte" summary "Integral primitive type (-128 to 127)")
-     ("break" summary "break [<label>] ;")
-     ("boolean" summary "Primitive logical quantity type (true or false)")
-     ("abstract" summary "Class|Method declaration modifier: abstract 
{class|<type>} <name> ...")))
-  "Table of language keywords.")
-
-(defconst wisent-java-tags-wy--token-table
-  (semantic-lex-make-type-table
-   '(("unicode"
-      (unicodecharacter))
-     ("number"
-      (NUMBER_LITERAL))
-     ("string"
-      (STRING_LITERAL))
-     ("symbol"
-      (IDENTIFIER))
-     ("punctuation"
-      (COMP . "~")
-      (OROR . "||")
-      (OREQ . "|=")
-      (OR . "|")
-      (XOREQ . "^=")
-      (XOR . "^")
-      (QUESTION . "?")
-      (URSHIFTEQ . ">>>=")
-      (URSHIFT . ">>>")
-      (RSHIFTEQ . ">>=")
-      (RSHIFT . ">>")
-      (GTEQ . ">=")
-      (GT . ">")
-      (EQEQ . "==")
-      (EQ . "=")
-      (LTEQ . "<=")
-      (LSHIFTEQ . "<<=")
-      (LSHIFT . "<<")
-      (LT . "<")
-      (SEMICOLON . ";")
-      (COLON . ":")
-      (DIVEQ . "/=")
-      (DIV . "/")
-      (DOT . ".")
-      (MINUSEQ . "-=")
-      (MINUSMINUS . "--")
-      (MINUS . "-")
-      (COMMA . ",")
-      (PLUSEQ . "+=")
-      (PLUSPLUS . "++")
-      (PLUS . "+")
-      (MULTEQ . "*=")
-      (MULT . "*")
-      (ANDEQ . "&=")
-      (ANDAND . "&&")
-      (AND . "&")
-      (MODEQ . "%=")
-      (MOD . "%")
-      (NOTEQ . "!=")
-      (NOT . "!"))
-     ("close-paren"
-      (RBRACK . "]")
-      (RBRACE . "}")
-      (RPAREN . ")"))
-     ("open-paren"
-      (LBRACK . "[")
-      (LBRACE . "{")
-      (LPAREN . "("))
-     ("block"
-      (BRACK_BLOCK . "(LBRACK RBRACK)")
-      (BRACE_BLOCK . "(LBRACE RBRACE)")
-      (PAREN_BLOCK . "(LPAREN RPAREN)")))
-   '(("keyword" :declared t)
-     ("unicode" syntax "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]")
-     ("unicode" :declared t)
-     ("number" :declared t)
-     ("string" :declared t)
-     ("symbol" :declared t)
-     ("punctuation" :declared t)
-     ("block" :declared t)))
-  "Table of lexical tokens.")
-
-(defconst wisent-java-tags-wy--parse-table
-  (progn
-    (eval-when-compile
-      (require 'semantic/wisent/comp))
-    (wisent-compile-grammar
-     '((PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK 
RBRACK NOT NOTEQ MOD MODEQ AND ANDAND ANDEQ MULT MULTEQ PLUS PLUSPLUS PLUSEQ 
COMMA MINUS MINUSMINUS MINUSEQ DOT DIV DIVEQ COLON SEMICOLON LT LSHIFT LSHIFTEQ 
LTEQ EQ EQEQ GT GTEQ RSHIFT RSHIFTEQ URSHIFT URSHIFTEQ QUESTION XOR XOREQ OR 
OREQ OROR COMP IDENTIFIER STRING_LITERAL NUMBER_LITERAL unicodecharacter 
ABSTRACT BOOLEAN BREAK BYTE CASE CATCH CHAR CLASS CONST CONTINUE DEFAULT DO 
DOUBLE ELSE EXTENDS FINAL FINALLY FLOAT FOR GOTO IF IMPLEMENTS IMPORT 
INSTANCEOF INT INTERFACE LONG NATIVE NEW PACKAGE PRIVATE PROTECTED PUBLIC 
RETURN SHORT STATIC STRICTFP SUPER SWITCH SYNCHRONIZED THIS THROW THROWS 
TRANSIENT TRY VOID VOLATILE WHILE _AUTHOR _VERSION _PARAM _RETURN _EXCEPTION 
_THROWS _SEE _SINCE _SERIAL _SERIALDATA _SERIALFIELD _DEPRECATED)
-       nil
-       (compilation_unit
-       ((package_declaration))
-       ((import_declaration))
-       ((type_declaration)))
-       (package_declaration
-       ((PACKAGE qualified_name SEMICOLON)
-        (wisent-raw-tag
-         (semantic-tag-new-package $2 nil))))
-       (import_declaration
-       ((IMPORT qualified_name SEMICOLON)
-        (wisent-raw-tag
-         (semantic-tag-new-include $2 nil)))
-       ((IMPORT qualified_name DOT MULT SEMICOLON)
-        (wisent-raw-tag
-         (semantic-tag-new-include
-          (concat $2 $3 $4)
-          nil))))
-       (type_declaration
-       ((SEMICOLON)
-        nil)
-       ((class_declaration))
-       ((interface_declaration)))
-       (class_declaration
-       ((modifiers_opt CLASS qualified_name superc_opt interfaces_opt 
class_body)
-        (wisent-raw-tag
-         (semantic-tag-new-type $3 $2 $6
-                                (if
-                                    (or $4 $5)
-                                    (cons $4 $5))
-                                :typemodifiers $1))))
-       (superc_opt
-       (nil)
-       ((EXTENDS qualified_name)
-        (identity $2)))
-       (interfaces_opt
-       (nil)
-       ((IMPLEMENTS qualified_name_list)
-        (nreverse $2)))
-       (class_body
-       ((BRACE_BLOCK)
-        (semantic-parse-region
-         (car $region1)
-         (cdr $region1)
-         'class_member_declaration 1)))
-       (class_member_declaration
-       ((LBRACE)
-        nil)
-       ((RBRACE)
-        nil)
-       ((block)
-        nil)
-       ((static_initializer)
-        nil)
-       ((constructor_declaration))
-       ((interface_declaration))
-       ((class_declaration))
-       ((method_declaration))
-       ((field_declaration)))
-       (interface_declaration
-       ((modifiers_opt INTERFACE qualified_name extends_interfaces_opt 
interface_body)
-        (wisent-raw-tag
-         (semantic-tag-new-type $3 $2 $5
-                                (if $4
-                                    (cons nil $4))
-                                :typemodifiers $1))))
-       (extends_interfaces_opt
-       (nil)
-       ((EXTENDS qualified_name_list)
-        (identity $2)))
-       (interface_body
-       ((BRACE_BLOCK)
-        (semantic-parse-region
-         (car $region1)
-         (cdr $region1)
-         'interface_member_declaration 1)))
-       (interface_member_declaration
-       ((LBRACE)
-        nil)
-       ((RBRACE)
-        nil)
-       ((interface_declaration))
-       ((class_declaration))
-       ((method_declaration))
-       ((field_declaration)))
-       (static_initializer
-       ((STATIC block)))
-       (constructor_declaration
-       ((modifiers_opt constructor_declarator throwsc_opt constructor_body)
-        (wisent-raw-tag
-         (semantic-tag-new-function
-          (car $2)
-          nil
-          (cdr $2)
-          :typemodifiers $1 :throws $3 :constructor-flag t))))
-       (constructor_declarator
-       ((IDENTIFIER formal_parameter_list)
-        (cons $1 $2)))
-       (constructor_body
-       ((block)))
-       (method_declaration
-       ((modifiers_opt VOID method_declarator throwsc_opt method_body)
-        (wisent-raw-tag
-         (semantic-tag-new-function
-          (car $3)
-          $2
-          (cdr $3)
-          :typemodifiers $1 :throws $4)))
-       ((modifiers_opt type method_declarator throwsc_opt method_body)
-        (wisent-raw-tag
-         (semantic-tag-new-function
-          (car $3)
-          $2
-          (cdr $3)
-          :typemodifiers $1 :throws $4))))
-       (method_declarator
-       ((IDENTIFIER formal_parameter_list dims_opt)
-        (cons
-         (concat $1 $3)
-         $2)))
-       (throwsc_opt
-       (nil)
-       ((THROWS qualified_name_list)
-        (nreverse $2)))
-       (qualified_name_list
-       ((qualified_name_list COMMA qualified_name)
-        (cons $3 $1))
-       ((qualified_name)
-        (list $1)))
-       (method_body
-       ((SEMICOLON))
-       ((block)))
-       (block
-       ((BRACE_BLOCK)))
-       (formal_parameter_list
-       ((PAREN_BLOCK)
-        (semantic-parse-region
-         (car $region1)
-         (cdr $region1)
-         'formal_parameters 1)))
-       (formal_parameters
-       ((LPAREN)
-        nil)
-       ((RPAREN)
-        nil)
-       ((formal_parameter COMMA))
-       ((formal_parameter RPAREN)))
-       (formal_parameter
-       ((formal_parameter_modifier_opt type opt_variable_declarator_id)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $3 $2 nil :typemodifiers $1))))
-       (formal_parameter_modifier_opt
-       (nil)
-       ((FINAL)
-        (list $1)))
-       (field_declaration
-       ((modifiers_opt type variable_declarators SEMICOLON)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $3 $2 nil :typemodifiers $1))))
-       (variable_declarators
-       ((variable_declarators COMMA variable_declarator)
-        (progn
-          (setcdr
-           (cdr
-            (car $1))
-           (cdr $region2))
-          (cons $3 $1)))
-       ((variable_declarator)
-        (list $1)))
-       (variable_declarator
-       ((variable_declarator_id EQ variable_initializer)
-        (cons $1 $region))
-       ((variable_declarator_id)
-        (cons $1 $region)))
-       (opt_variable_declarator_id
-       (nil
-        (identity ""))
-       ((variable_declarator_id)
-        (identity $1)))
-       (variable_declarator_id
-       ((IDENTIFIER dims_opt)
-        (concat $1 $2)))
-       (variable_initializer
-       ((expression)))
-       (expression
-       ((expression term))
-       ((term)))
-       (term
-       ((literal))
-       ((operator))
-       ((primitive_type))
-       ((IDENTIFIER))
-       ((BRACK_BLOCK))
-       ((PAREN_BLOCK))
-       ((BRACE_BLOCK))
-       ((NEW))
-       ((CLASS))
-       ((THIS))
-       ((SUPER)))
-       (literal
-       ((STRING_LITERAL))
-       ((NUMBER_LITERAL)))
-       (operator
-       ((NOT))
-       ((PLUS))
-       ((PLUSPLUS))
-       ((MINUS))
-       ((MINUSMINUS))
-       ((NOTEQ))
-       ((MOD))
-       ((MODEQ))
-       ((AND))
-       ((ANDAND))
-       ((ANDEQ))
-       ((MULT))
-       ((MULTEQ))
-       ((PLUSEQ))
-       ((MINUSEQ))
-       ((DOT))
-       ((DIV))
-       ((DIVEQ))
-       ((COLON))
-       ((LT))
-       ((LSHIFT))
-       ((LSHIFTEQ))
-       ((LTEQ))
-       ((EQ))
-       ((EQEQ))
-       ((GT))
-       ((GTEQ))
-       ((RSHIFT))
-       ((RSHIFTEQ))
-       ((URSHIFT))
-       ((URSHIFTEQ))
-       ((QUESTION))
-       ((XOR))
-       ((XOREQ))
-       ((OR))
-       ((OREQ))
-       ((OROR))
-       ((COMP))
-       ((INSTANCEOF)))
-       (primitive_type
-       ((BOOLEAN))
-       ((CHAR))
-       ((LONG))
-       ((INT))
-       ((SHORT))
-       ((BYTE))
-       ((DOUBLE))
-       ((FLOAT)))
-       (modifiers_opt
-       (nil)
-       ((modifiers)
-        (nreverse $1)))
-       (modifiers
-       ((modifiers modifier)
-        (cons $2 $1))
-       ((modifier)
-        (list $1)))
-       (modifier
-       ((STRICTFP))
-       ((VOLATILE))
-       ((TRANSIENT))
-       ((SYNCHRONIZED))
-       ((NATIVE))
-       ((FINAL))
-       ((ABSTRACT))
-       ((STATIC))
-       ((PRIVATE))
-       ((PROTECTED))
-       ((PUBLIC)))
-       (type
-       ((qualified_name dims_opt)
-        (concat $1 $2))
-       ((primitive_type dims_opt)
-        (concat $1 $2)))
-       (qualified_name
-       ((qualified_name DOT IDENTIFIER)
-        (concat $1 $2 $3))
-       ((IDENTIFIER)))
-       (dims_opt
-       (nil
-        (identity ""))
-       ((dims)))
-       (dims
-       ((dims BRACK_BLOCK)
-        (concat $1 "[]"))
-       ((BRACK_BLOCK)
-        (identity "[]"))))
-     '(compilation_unit package_declaration import_declaration 
class_declaration field_declaration method_declaration formal_parameter 
constructor_declaration interface_declaration class_member_declaration 
interface_member_declaration formal_parameters)))
-  "Parser table.")
-
-(defun wisent-java-tags-wy--install-parser ()
-  "Setup the Semantic Parser."
-  (semantic-install-function-overrides
-   '((parse-stream . wisent-parse-stream)))
-  (setq semantic-parser-name "LALR"
-       semantic--parse-table wisent-java-tags-wy--parse-table
-       semantic-debug-parser-source "java-tags.wy"
-       semantic-flex-keywords-obarray wisent-java-tags-wy--keyword-table
-       semantic-lex-types-obarray wisent-java-tags-wy--token-table)
-  ;; Collect unmatched syntax lexical tokens
-  (semantic-make-local-hook 'wisent-discarding-token-functions)
-  (add-hook 'wisent-discarding-token-functions
-           'wisent-collect-unmatched-syntax nil t))
-
-
-;;; Analyzers
-;;
-(define-lex-block-type-analyzer wisent-java-tags-wy--<block>-block-analyzer
-  "block analyzer for <block> tokens."
-  "\\s(\\|\\s)"
-  '((("(" LPAREN PAREN_BLOCK)
-     ("{" LBRACE BRACE_BLOCK)
-     ("[" LBRACK BRACK_BLOCK))
-    (")" RPAREN)
-    ("}" RBRACE)
-    ("]" RBRACK))
-  )
-
-(define-lex-string-type-analyzer 
wisent-java-tags-wy--<punctuation>-string-analyzer
-  "string analyzer for <punctuation> tokens."
-  "\\(\\s.\\|\\s$\\|\\s'\\)+"
-  '((COMP . "~")
-    (OROR . "||")
-    (OREQ . "|=")
-    (OR . "|")
-    (XOREQ . "^=")
-    (XOR . "^")
-    (QUESTION . "?")
-    (URSHIFTEQ . ">>>=")
-    (URSHIFT . ">>>")
-    (RSHIFTEQ . ">>=")
-    (RSHIFT . ">>")
-    (GTEQ . ">=")
-    (GT . ">")
-    (EQEQ . "==")
-    (EQ . "=")
-    (LTEQ . "<=")
-    (LSHIFTEQ . "<<=")
-    (LSHIFT . "<<")
-    (LT . "<")
-    (SEMICOLON . ";")
-    (COLON . ":")
-    (DIVEQ . "/=")
-    (DIV . "/")
-    (DOT . ".")
-    (MINUSEQ . "-=")
-    (MINUSMINUS . "--")
-    (MINUS . "-")
-    (COMMA . ",")
-    (PLUSEQ . "+=")
-    (PLUSPLUS . "++")
-    (PLUS . "+")
-    (MULTEQ . "*=")
-    (MULT . "*")
-    (ANDEQ . "&=")
-    (ANDAND . "&&")
-    (AND . "&")
-    (MODEQ . "%=")
-    (MOD . "%")
-    (NOTEQ . "!=")
-    (NOT . "!"))
-  'punctuation)
-
-(define-lex-regex-type-analyzer wisent-java-tags-wy--<symbol>-regexp-analyzer
-  "regexp analyzer for <symbol> tokens."
-  "\\(\\sw\\|\\s_\\)+"
-  nil
-  'IDENTIFIER)
-
-(define-lex-regex-type-analyzer wisent-java-tags-wy--<unicode>-regexp-analyzer
-  "regexp analyzer for <unicode> tokens."
-  "\\\\u[0-9a-f][0-9a-f][0-9a-f][0-9a-f]"
-  nil
-  'unicodecharacter)
-
-(define-lex-regex-type-analyzer wisent-java-tags-wy--<number>-regexp-analyzer
-  "regexp analyzer for <number> tokens."
-  semantic-lex-number-expression
-  nil
-  'NUMBER_LITERAL)
-
-(define-lex-sexp-type-analyzer wisent-java-tags-wy--<string>-sexp-analyzer
-  "sexp analyzer for <string> tokens."
-  "\\s\""
-  'STRING_LITERAL)
-
-(define-lex-keyword-type-analyzer 
wisent-java-tags-wy--<keyword>-keyword-analyzer
-  "keyword analyzer for <keyword> tokens."
-  "\\(\\sw\\|\\s_\\)+")
-
-
-;;; Epilogue
-;;
-;; Define the lexer for this grammar
-(define-lex wisent-java-tags-lexer
-  "Lexical analyzer that handles Java buffers.
-It ignores whitespaces, newlines and comments."
-  semantic-lex-ignore-whitespace
-  semantic-lex-ignore-newline
-  semantic-lex-ignore-comments
-  ;;;; Auto-generated analyzers.
-  wisent-java-tags-wy--<number>-regexp-analyzer
-  wisent-java-tags-wy--<string>-sexp-analyzer
-  ;; Must detect keywords before other symbols
-  wisent-java-tags-wy--<keyword>-keyword-analyzer
-  wisent-java-tags-wy--<symbol>-regexp-analyzer
-  wisent-java-tags-wy--<punctuation>-string-analyzer
-  wisent-java-tags-wy--<block>-block-analyzer
-  ;; In theory, Unicode chars should be turned into normal chars
-  ;; and then combined into regular ascii keywords and text.  This
-  ;; analyzer just keeps these things from making the lexer go boom.
-  wisent-java-tags-wy--<unicode>-regexp-analyzer
-  ;;;;
-  semantic-lex-default-action)
-
-(provide 'semantic/wisent/javat-wy)
-
-;;; semantic/wisent/javat-wy.el ends here

=== removed file 'lisp/cedet/semantic/wisent/js-wy.el'
--- a/lisp/cedet/semantic/wisent/js-wy.el       2013-05-24 07:01:49 +0000
+++ b/lisp/cedet/semantic/wisent/js-wy.el       1970-01-01 00:00:00 +0000
@@ -1,530 +0,0 @@
-;;; semantic/wisent/js-wy.el --- Generated parser support file
-
-;; Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
-;; Copyright (C) 1998-2011 Ecma International.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/js.wy.
-
-;; It is derived from the grammar in the ECMAScript Language
-;; Specification published at
-;;
-;; http://www.ecma-international.org/publications/standards/Ecma-262.htm
-;;
-;; and redistributed under the following license:
-;;
-;; Redistribution and use in source and binary forms, with or without
-;; modification, are permitted provided that the following conditions
-;; are met:
-;;
-;; 1. Redistributions of source code must retain the above copyright
-;; notice, this list of conditions and the following disclaimer.
-;;
-;; 2. Redistributions in binary form must reproduce the above
-;; copyright notice, this list of conditions and the following
-;; disclaimer in the documentation and/or other materials provided
-;; with the distribution.
-;;
-;; 3. Neither the name of the authors nor Ecma International may be
-;; used to endorse or promote products derived from this software
-;; without specific prior written permission.  THIS SOFTWARE IS
-;; PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
-;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-;; ARE DISCLAIMED. IN NO EVENT SHALL ECMA INTERNATIONAL BE LIABLE FOR
-;; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-;; OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-;; DAMAGE.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-(declare-function semantic-parse-region "semantic"
-                 (start end &optional nonterminal depth returnonerror))
-
-;;; Declarations
-;;
-(defconst wisent-javascript-jv-wy--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("if" . IF)
-     ("break" . BREAK)
-     ("continue" . CONTINUE)
-     ("else" . ELSE)
-     ("for" . FOR)
-     ("function" . FUNCTION)
-     ("this" . THIS)
-     ("return" . RETURN)
-     ("while" . WHILE)
-     ("void" . VOID_SYMBOL)
-     ("new" . NEW)
-     ("delete" . DELETE)
-     ("var" . VAR)
-     ("with" . WITH)
-     ("typeof" . TYPEOF)
-     ("in" . IN))
-   '(("in" summary "in something")
-     ("typeof" summary "typeof ")
-     ("with" summary "with ")
-     ("var" summary "var <variablename> [= value];")
-     ("delete" summary "delete(<objectreference>) - Deletes the object.")
-     ("new" summary "new <objecttype> - Creates a new object.")
-     ("void" summary "Method return type: void <name> ...")
-     ("while" summary "while (<expr>) <stmt> | do <stmt> while (<expr>);")
-     ("return" summary "return [<expr>] ;")
-     ("this" summary "this")
-     ("function" summary "function declaration blah blah")
-     ("for" summary "for ([<init-expr>]; [<expr>]; [<update-expr>]) <stmt>")
-     ("else" summary "if (<expr>) <stmt> else <stmt>")
-     ("continue" summary "continue [<label>] ;")
-     ("break" summary "break [<label>] ;")
-     ("if" summary "if (<expr>) <stmt> [else <stmt>] (jv)")))
-  "Table of language keywords.")
-
-(defconst wisent-javascript-jv-wy--token-table
-  (semantic-lex-make-type-table
-   '(("<no-type>"
-      (NULL_TOKEN)
-      (QUERY)
-      (TRUE)
-      (FALSE))
-     ("number"
-      (NUMBER))
-     ("string"
-      (STRING))
-     ("symbol"
-      (VARIABLE))
-     ("close-paren"
-      (CLOSE_SQ_BRACKETS . "]")
-      (END_BLOCK . "}")
-      (CLOSE_PARENTHESIS . ")"))
-     ("open-paren"
-      (OPEN_SQ_BRACKETS . "[")
-      (START_BLOCK . "{")
-      (OPEN_PARENTHESIS . "("))
-     ("block"
-      (BRACK_BLOCK . "(OPEN_SQ_BRACKETS CLOSE_SQ_BRACKETS)")
-      (BRACE_BLOCK . "(START_BLOCK END_BLOCK)")
-      (PAREN_BLOCK . "(OPEN_PARENTHESIS CLOSE_PARENTHESIS)"))
-     ("punctuation"
-      (ONES_COMPLIMENT . "~")
-      (SEMICOLON . ";")
-      (LINE_TERMINATOR . "\n")
-      (LESS_THAN . "<")
-      (DOT . ".")
-      (COMMA . ",")
-      (COLON . ":")
-      (DIV . "/")
-      (DECREMENT . "--")
-      (INCREMENT . "++")
-      (PLUS_EQUALS . "+=")
-      (PLUS . "+")
-      (MULTIPLY_EQUALS . "*=")
-      (MULTIPLY . "*")
-      (MOD_EQUALS . "%=")
-      (MOD . "%")
-      (MINUS_EQUALS . "-=")
-      (MINUS . "-")
-      (LS_EQUAL . "<=")
-      (LOGICAL_NOT . "!!")
-      (LOGICAL_OR . "||")
-      (LOGICAL_AND . "&&")
-      (GT_EQUAL . ">=")
-      (GREATER_THAN . ">")
-      (EQUALS . "==")
-      (DIV_EQUALS . "/=")
-      (NOT_EQUAL . "!=")
-      (BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS . ">>>=")
-      (BITWISE_SHIFT_RIGHT_ZERO_FILL . ">>>")
-      (BITWISE_SHIFT_RIGHT_EQUALS . ">>=")
-      (BITWISE_SHIFT_RIGHT . ">>")
-      (BITWISE_SHIFT_LEFT_EQUALS . "<<=")
-      (BITWISE_SHIFT_LEFT . "<<")
-      (BITWISE_OR_EQUALS . "|=")
-      (BITWISE_OR . "|")
-      (BITWISE_EXCLUSIVE_OR_EQUALS . "^=")
-      (BITWISE_EXCLUSIVE_OR . "^")
-      (BITWISE_AND_EQUALS . "&=")
-      (BITWISE_AND . "&")
-      (ASSIGN_SYMBOL . "=")))
-   '(("number" :declared t)
-     ("string" :declared t)
-     ("symbol" :declared t)
-     ("keyword" :declared t)
-     ("block" :declared t)
-     ("punctuation" :declared t)))
-  "Table of lexical tokens.")
-
-(defconst wisent-javascript-jv-wy--parse-table
-  (progn
-    (eval-when-compile
-      (require 'semantic/wisent/comp))
-    (wisent-compile-grammar
-     '((ASSIGN_SYMBOL BITWISE_AND BITWISE_AND_EQUALS BITWISE_EXCLUSIVE_OR 
BITWISE_EXCLUSIVE_OR_EQUALS BITWISE_OR BITWISE_OR_EQUALS BITWISE_SHIFT_LEFT 
BITWISE_SHIFT_LEFT_EQUALS BITWISE_SHIFT_RIGHT BITWISE_SHIFT_RIGHT_EQUALS 
BITWISE_SHIFT_RIGHT_ZERO_FILL BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS NOT_EQUAL 
DIV_EQUALS EQUALS GREATER_THAN GT_EQUAL LOGICAL_AND LOGICAL_OR LOGICAL_NOT 
LS_EQUAL MINUS MINUS_EQUALS MOD MOD_EQUALS MULTIPLY MULTIPLY_EQUALS PLUS 
PLUS_EQUALS INCREMENT DECREMENT DIV COLON COMMA DOT LESS_THAN LINE_TERMINATOR 
SEMICOLON ONES_COMPLIMENT PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK OPEN_PARENTHESIS 
CLOSE_PARENTHESIS START_BLOCK END_BLOCK OPEN_SQ_BRACKETS CLOSE_SQ_BRACKETS IF 
BREAK CONTINUE ELSE FOR FUNCTION THIS RETURN WHILE VOID_SYMBOL NEW DELETE VAR 
WITH TYPEOF IN VARIABLE STRING NUMBER FALSE TRUE QUERY NULL_TOKEN)
-       ((left PLUS MINUS)
-       (left MULTIPLY DIV MOD)
-       (nonassoc FALSE)
-       (nonassoc HIGHER_THAN_FALSE)
-       (nonassoc ELSE)
-       (nonassoc LOWER_THAN_CLOSE_PARENTHESIS)
-       (nonassoc CLOSE_PARENTHESIS))
-       (Program
-       ((SourceElement)))
-       (SourceElement
-       ((Statement))
-       ((FunctionDeclaration)))
-       (Statement
-       ((Block))
-       ((VariableStatement))
-       ((EmptyStatement))
-       ((ExpressionStatement))
-       ((IfStatement))
-       ((IterationExpression))
-       ((ContinueStatement))
-       ((BreakStatement))
-       ((ReturnStatement))
-       ((WithStatement)))
-       (FunctionDeclaration
-       ((FUNCTION VARIABLE FormalParameterListBlock Block)
-        (wisent-raw-tag
-         (semantic-tag-new-function $2 nil $3))))
-       (FormalParameterListBlock
-       ((PAREN_BLOCK)
-        (semantic-parse-region
-         (car $region1)
-         (cdr $region1)
-         'FormalParameterList 1)))
-       (FormalParameterList
-       ((OPEN_PARENTHESIS)
-        nil)
-       ((VARIABLE)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $1 nil nil)))
-       ((CLOSE_PARENTHESIS)
-        nil)
-       ((COMMA)
-        nil))
-       (StatementList
-       ((Statement))
-       ((StatementList Statement)))
-       (Block
-       ((BRACE_BLOCK)))
-       (BlockExpand
-       ((START_BLOCK StatementList END_BLOCK))
-       ((START_BLOCK END_BLOCK)))
-       (VariableStatement
-       ((VAR VariableDeclarationList SEMICOLON)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil nil))))
-       (VariableDeclarationList
-       ((VariableDeclaration)
-        (list $1))
-       ((VariableDeclarationList COMMA VariableDeclaration)
-        (append $1
-                (list $3))))
-       (VariableDeclaration
-       ((VARIABLE)
-        (append
-         (list $1 nil)
-         $region))
-       ((VARIABLE Initializer)
-        (append
-         (cons $1 $2)
-         $region)))
-       (Initializer
-       ((ASSIGN_SYMBOL AssignmentExpression)
-        (list $2)))
-       (EmptyStatement
-       ((SEMICOLON)))
-       (ExpressionStatement
-       ((Expression SEMICOLON)))
-       (IfStatement
-       ((IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement)
-        [HIGHER_THAN_FALSE])
-       ((IF OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement ELSE 
Statement))
-       ((IF OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement))
-       ((IF OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator 
AssignmentExpression CLOSE_PARENTHESIS Statement)))
-       (IterationExpression
-       ((WHILE OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement)
-        [HIGHER_THAN_FALSE])
-       ((WHILE OPEN_PARENTHESIS FALSE CLOSE_PARENTHESIS Statement))
-       ((WHILE OPEN_PARENTHESIS LeftHandSideExpression AssignmentOperator 
AssignmentExpression CLOSE_PARENTHESIS Statement))
-       ((FOR OPEN_PARENTHESIS OptionalExpression SEMICOLON OptionalExpression 
SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement))
-       ((FOR OPEN_PARENTHESIS VAR VariableDeclarationList SEMICOLON 
OptionalExpression SEMICOLON OptionalExpression CLOSE_PARENTHESIS Statement))
-       ((FOR OPEN_PARENTHESIS LeftHandSideExpression IN Expression 
CLOSE_PARENTHESIS Statement))
-       ((FOR OPEN_PARENTHESIS VAR VARIABLE OptionalInitializer IN Expression 
CLOSE_PARENTHESIS Statement)))
-       (ContinueStatement
-       ((CONTINUE SEMICOLON)))
-       (BreakStatement
-       ((BREAK SEMICOLON)))
-       (ReturnStatement
-       ((RETURN Expression SEMICOLON))
-       ((RETURN SEMICOLON)))
-       (WithStatement
-       ((WITH OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statement)))
-       (OptionalInitializer
-       ((Initializer))
-       (nil))
-       (PrimaryExpression
-       ((THIS))
-       ((VARIABLE))
-       ((NUMBER))
-       ((STRING))
-       ((NULL_TOKEN))
-       ((TRUE))
-       ((FALSE))
-       ((OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS)))
-       (MemberExpression
-       ((PrimaryExpression))
-       ((MemberExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS))
-       ((MemberExpression DOT VARIABLE))
-       ((NEW MemberExpression Arguments)))
-       (NewExpression
-       ((MemberExpression))
-       ((NEW NewExpression)))
-       (CallExpression
-       ((MemberExpression Arguments))
-       ((CallExpression Arguments))
-       ((CallExpression OPEN_SQ_BRACKETS Expression CLOSE_SQ_BRACKETS))
-       ((CallExpression DOT VARIABLE)))
-       (Arguments
-       ((OPEN_PARENTHESIS CLOSE_PARENTHESIS))
-       ((OPEN_PARENTHESIS ArgumentList CLOSE_PARENTHESIS)))
-       (ArgumentList
-       ((AssignmentExpression))
-       ((ArgumentList COMMA AssignmentExpression)))
-       (LeftHandSideExpression
-       ((NewExpression))
-       ((CallExpression)))
-       (PostfixExpression
-       ((LeftHandSideExpression))
-       ((LeftHandSideExpression INCREMENT))
-       ((LeftHandSideExpression DECREMENT)))
-       (UnaryExpression
-       ((PostfixExpression))
-       ((DELETE UnaryExpression))
-       ((VOID_SYMBOL UnaryExpression))
-       ((TYPEOF UnaryExpression))
-       ((INCREMENT UnaryExpression))
-       ((DECREMENT UnaryExpression))
-       ((PLUS UnaryExpression))
-       ((MINUS UnaryExpression))
-       ((ONES_COMPLIMENT UnaryExpression))
-       ((LOGICAL_NOT UnaryExpression)))
-       (MultiplicativeExpression
-       ((UnaryExpression))
-       ((MultiplicativeExpression MULTIPLY UnaryExpression))
-       ((MultiplicativeExpression DIV UnaryExpression))
-       ((MultiplicativeExpression MOD UnaryExpression)))
-       (AdditiveExpression
-       ((MultiplicativeExpression))
-       ((AdditiveExpression PLUS MultiplicativeExpression))
-       ((AdditiveExpression MINUS MultiplicativeExpression)))
-       (ShiftExpression
-       ((AdditiveExpression))
-       ((ShiftExpression BITWISE_SHIFT_LEFT AdditiveExpression))
-       ((ShiftExpression BITWISE_SHIFT_RIGHT AdditiveExpression))
-       ((ShiftExpression BITWISE_SHIFT_RIGHT_ZERO_FILL AdditiveExpression)))
-       (RelationalExpression
-       ((ShiftExpression))
-       ((RelationalExpression LESS_THAN ShiftExpression))
-       ((RelationalExpression GREATER_THAN ShiftExpression))
-       ((RelationalExpression LS_EQUAL ShiftExpression))
-       ((RelationalExpression GT_EQUAL ShiftExpression)))
-       (EqualityExpression
-       ((RelationalExpression))
-       ((EqualityExpression EQUALS RelationalExpression))
-       ((EqualityExpression NOT_EQUAL RelationalExpression)))
-       (BitwiseANDExpression
-       ((EqualityExpression))
-       ((BitwiseANDExpression BITWISE_AND EqualityExpression)))
-       (BitwiseXORExpression
-       ((BitwiseANDExpression))
-       ((BitwiseXORExpression BITWISE_EXCLUSIVE_OR BitwiseANDExpression)))
-       (BitwiseORExpression
-       ((BitwiseXORExpression))
-       ((BitwiseORExpression BITWISE_OR BitwiseXORExpression)))
-       (LogicalANDExpression
-       ((BitwiseORExpression))
-       ((LogicalANDExpression LOGICAL_AND BitwiseORExpression)))
-       (LogicalORExpression
-       ((LogicalANDExpression))
-       ((LogicalORExpression LOGICAL_OR LogicalANDExpression)))
-       (ConditionalExpression
-       ((LogicalORExpression))
-       ((LogicalORExpression QUERY AssignmentExpression COLON 
AssignmentExpression)))
-       (AssignmentExpression
-       ((ConditionalExpression))
-       ((LeftHandSideExpression AssignmentOperator AssignmentExpression)
-        [LOWER_THAN_CLOSE_PARENTHESIS]))
-       (AssignmentOperator
-       ((ASSIGN_SYMBOL))
-       ((MULTIPLY_EQUALS))
-       ((DIV_EQUALS))
-       ((MOD_EQUALS))
-       ((PLUS_EQUALS))
-       ((MINUS_EQUALS))
-       ((BITWISE_SHIFT_LEFT_EQUALS))
-       ((BITWISE_SHIFT_RIGHT_EQUALS))
-       ((BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS))
-       ((BITWISE_AND_EQUALS))
-       ((BITWISE_EXCLUSIVE_OR_EQUALS))
-       ((BITWISE_OR_EQUALS)))
-       (Expression
-       ((AssignmentExpression))
-       ((Expression COMMA AssignmentExpression)))
-       (OptionalExpression
-       ((Expression))
-       (nil)))
-     '(Program FormalParameterList)))
-  "Parser table.")
-
-(defun wisent-javascript-jv-wy--install-parser ()
-  "Setup the Semantic Parser."
-  (semantic-install-function-overrides
-   '((parse-stream . wisent-parse-stream)))
-  (setq semantic-parser-name "LALR"
-       semantic--parse-table wisent-javascript-jv-wy--parse-table
-       semantic-debug-parser-source "js.wy"
-       semantic-flex-keywords-obarray wisent-javascript-jv-wy--keyword-table
-       semantic-lex-types-obarray wisent-javascript-jv-wy--token-table)
-  ;; Collect unmatched syntax lexical tokens
-  (semantic-make-local-hook 'wisent-discarding-token-functions)
-  (add-hook 'wisent-discarding-token-functions
-           'wisent-collect-unmatched-syntax nil t))
-
-
-;;; Analyzers
-;;
-(define-lex-block-type-analyzer wisent-javascript-jv-wy--<block>-block-analyzer
-  "block analyzer for <block> tokens."
-  "\\s(\\|\\s)"
-  '((("(" OPEN_PARENTHESIS PAREN_BLOCK)
-     ("{" START_BLOCK BRACE_BLOCK)
-     ("[" OPEN_SQ_BRACKETS BRACK_BLOCK))
-    (")" CLOSE_PARENTHESIS)
-    ("}" END_BLOCK)
-    ("]" CLOSE_SQ_BRACKETS))
-  )
-
-(define-lex-regex-type-analyzer 
wisent-javascript-jv-wy--<symbol>-regexp-analyzer
-  "regexp analyzer for <symbol> tokens."
-  "\\(\\sw\\|\\s_\\)+"
-  nil
-  'VARIABLE)
-
-(define-lex-regex-type-analyzer 
wisent-javascript-jv-wy--<number>-regexp-analyzer
-  "regexp analyzer for <number> tokens."
-  semantic-lex-number-expression
-  nil
-  'NUMBER)
-
-(define-lex-string-type-analyzer 
wisent-javascript-jv-wy--<punctuation>-string-analyzer
-  "string analyzer for <punctuation> tokens."
-  "\\(\\s.\\|\\s$\\|\\s'\\)+"
-  '((ONES_COMPLIMENT . "~")
-    (SEMICOLON . ";")
-    (LINE_TERMINATOR . "\n")
-    (LESS_THAN . "<")
-    (DOT . ".")
-    (COMMA . ",")
-    (COLON . ":")
-    (DIV . "/")
-    (DECREMENT . "--")
-    (INCREMENT . "++")
-    (PLUS_EQUALS . "+=")
-    (PLUS . "+")
-    (MULTIPLY_EQUALS . "*=")
-    (MULTIPLY . "*")
-    (MOD_EQUALS . "%=")
-    (MOD . "%")
-    (MINUS_EQUALS . "-=")
-    (MINUS . "-")
-    (LS_EQUAL . "<=")
-    (LOGICAL_NOT . "!!")
-    (LOGICAL_OR . "||")
-    (LOGICAL_AND . "&&")
-    (GT_EQUAL . ">=")
-    (GREATER_THAN . ">")
-    (EQUALS . "==")
-    (DIV_EQUALS . "/=")
-    (NOT_EQUAL . "!=")
-    (BITWISE_SHIFT_RIGHT_ZERO_FILL_EQUALS . ">>>=")
-    (BITWISE_SHIFT_RIGHT_ZERO_FILL . ">>>")
-    (BITWISE_SHIFT_RIGHT_EQUALS . ">>=")
-    (BITWISE_SHIFT_RIGHT . ">>")
-    (BITWISE_SHIFT_LEFT_EQUALS . "<<=")
-    (BITWISE_SHIFT_LEFT . "<<")
-    (BITWISE_OR_EQUALS . "|=")
-    (BITWISE_OR . "|")
-    (BITWISE_EXCLUSIVE_OR_EQUALS . "^=")
-    (BITWISE_EXCLUSIVE_OR . "^")
-    (BITWISE_AND_EQUALS . "&=")
-    (BITWISE_AND . "&")
-    (ASSIGN_SYMBOL . "="))
-  'punctuation)
-
-(define-lex-sexp-type-analyzer wisent-javascript-jv-wy--<string>-sexp-analyzer
-  "sexp analyzer for <string> tokens."
-  "\\s\""
-  'STRING)
-
-(define-lex-keyword-type-analyzer 
wisent-javascript-jv-wy--<keyword>-keyword-analyzer
-  "keyword analyzer for <keyword> tokens."
-  "\\(\\sw\\|\\s_\\)+")
-
-
-;;; Epilogue
-;;
-;;here something like:
-;;(define-lex wisent-java-tags-lexer
-;; should go
-(define-lex javascript-lexer-jv
-"javascript thingy"
-;;std stuff
-  semantic-lex-ignore-whitespace
-  semantic-lex-ignore-newline
-  semantic-lex-ignore-comments
-
-  ;;stuff generated from the wy file(one for each "type" declaration)
-  wisent-javascript-jv-wy--<number>-regexp-analyzer
-  wisent-javascript-jv-wy--<string>-sexp-analyzer
-
-  wisent-javascript-jv-wy--<keyword>-keyword-analyzer
-
-  wisent-javascript-jv-wy--<symbol>-regexp-analyzer
-  wisent-javascript-jv-wy--<punctuation>-string-analyzer
-  wisent-javascript-jv-wy--<block>-block-analyzer
-
-
-  ;;;;more std stuff
-  semantic-lex-default-action
-  )
-
-(provide 'semantic/wisent/js-wy)
-
-;;; semantic/wisent/js-wy.el ends here

=== removed file 'lisp/cedet/semantic/wisent/python-wy.el'
--- a/lisp/cedet/semantic/wisent/python-wy.el   2013-05-24 07:01:49 +0000
+++ b/lisp/cedet/semantic/wisent/python-wy.el   1970-01-01 00:00:00 +0000
@@ -1,847 +0,0 @@
-;;; semantic/wisent/python-wy.el --- Generated parser support file
-
-;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
-;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-;; 2009, 2010 Python Software Foundation; All Rights Reserved
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/python.wy.
-;; It is derived in part from the Python grammar, used under the
-;; following license:
-;;
-;; PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
-;; --------------------------------------------
-;; 1. This LICENSE AGREEMENT is between the Python Software Foundation
-;; ("PSF"), and the Individual or Organization ("Licensee") accessing
-;; and otherwise using this software ("Python") in source or binary
-;; form and its associated documentation.
-;;
-;; 2. Subject to the terms and conditions of this License Agreement,
-;; PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide
-;; license to reproduce, analyze, test, perform and/or display
-;; publicly, prepare derivative works, distribute, and otherwise use
-;; Python alone or in any derivative version, provided, however, that
-;; PSF's License Agreement and PSF's notice of copyright, i.e.,
-;; "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-;; 2009, 2010 Python Software Foundation; All Rights Reserved" are
-;; retained in Python alone or in any derivative version prepared by
-;; Licensee.
-;;
-;; 3. In the event Licensee prepares a derivative work that is based
-;; on or incorporates Python or any part thereof, and wants to make
-;; the derivative work available to others as provided herein, then
-;; Licensee hereby agrees to include in any such work a brief summary
-;; of the changes made to Python.
-;;
-;; 4. PSF is making Python available to Licensee on an "AS IS"
-;; basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-;; IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-;; DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-;; FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
-;; INFRINGE ANY THIRD PARTY RIGHTS.
-;;
-;; 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-;; FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A
-;; RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR
-;; ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-;;
-;; 6. This License Agreement will automatically terminate upon a
-;; material breach of its terms and conditions.
-;;
-;; 7. Nothing in this License Agreement shall be deemed to create any
-;; relationship of agency, partnership, or joint venture between PSF
-;; and Licensee.  This License Agreement does not grant permission to
-;; use PSF trademarks or trade name in a trademark sense to endorse or
-;; promote products or services of Licensee, or any third party.
-;;
-;; 8. By copying, installing or otherwise using Python, Licensee
-;; agrees to be bound by the terms and conditions of this License
-;; Agreement.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-(declare-function wisent-python-reconstitute-function-tag
-                 "semantic/wisent/python" (tag suite))
-(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python"
-                 (tag))
-(declare-function semantic-parse-region "semantic"
-                 (start end &optional nonterminal depth returnonerror))
-
-;;; Declarations
-;;
-(defconst wisent-python-wy--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("and" . AND)
-     ("as" . AS)
-     ("assert" . ASSERT)
-     ("break" . BREAK)
-     ("class" . CLASS)
-     ("continue" . CONTINUE)
-     ("def" . DEF)
-     ("del" . DEL)
-     ("elif" . ELIF)
-     ("else" . ELSE)
-     ("except" . EXCEPT)
-     ("exec" . EXEC)
-     ("finally" . FINALLY)
-     ("for" . FOR)
-     ("from" . FROM)
-     ("global" . GLOBAL)
-     ("if" . IF)
-     ("import" . IMPORT)
-     ("in" . IN)
-     ("is" . IS)
-     ("lambda" . LAMBDA)
-     ("not" . NOT)
-     ("or" . OR)
-     ("pass" . PASS)
-     ("print" . PRINT)
-     ("raise" . RAISE)
-     ("return" . RETURN)
-     ("try" . TRY)
-     ("while" . WHILE)
-     ("with" . WITH)
-     ("yield" . YIELD))
-   '(("yield" summary "Create a generator function")
-     ("with" summary "Start statement with an associated context object")
-     ("while" summary "Start a 'while' loop")
-     ("try" summary "Start of statements protected by exception handlers")
-     ("return" summary "Return from a function")
-     ("raise" summary "Raise an exception")
-     ("print" summary "Print each argument to standard output")
-     ("pass" summary "Statement that does nothing")
-     ("or" summary "Binary logical 'or' operator")
-     ("not" summary "Unary boolean negation operator")
-     ("lambda" summary "Create anonymous function")
-     ("is" summary "Binary operator that tests for object equality")
-     ("in" summary "Part of 'for' statement ")
-     ("import" summary "Load specified modules")
-     ("if" summary "Start 'if' conditional statement")
-     ("global" summary "Declare one or more symbols as global symbols")
-     ("from" summary "Modify behavior of 'import' statement")
-     ("for" summary "Start a 'for' loop")
-     ("finally" summary "Specify code to be executed after 'try' statements 
whether or not an exception occurred")
-     ("exec" summary "Dynamically execute Python code")
-     ("except" summary "Specify exception handlers along with 'try' keyword")
-     ("else" summary "Start the 'else' clause following an 'if' statement")
-     ("elif" summary "Shorthand for 'else if' following an 'if' statement")
-     ("del" summary "Delete specified objects, i.e., undo what assignment did")
-     ("def" summary "Define a new function")
-     ("continue" summary "Skip to the next iteration of enclosing 'for' or 
'while' loop")
-     ("class" summary "Define a new class")
-     ("break" summary "Terminate 'for' or 'while' loop")
-     ("assert" summary "Raise AssertionError exception if <expr> is false")
-     ("as" summary "EXPR as NAME makes value of EXPR available as variable 
NAME")
-     ("and" summary "Logical AND binary operator ... ")))
-  "Table of language keywords.")
-
-(defconst wisent-python-wy--token-table
-  (semantic-lex-make-type-table
-   '(("symbol"
-      (NAME))
-     ("number"
-      (NUMBER_LITERAL))
-     ("string"
-      (STRING_LITERAL))
-     ("punctuation"
-      (AT . "@")
-      (BACKQUOTE . "`")
-      (ASSIGN . "=")
-      (COMMA . ",")
-      (SEMICOLON . ";")
-      (COLON . ":")
-      (BAR . "|")
-      (TILDE . "~")
-      (PERIOD . ".")
-      (MINUS . "-")
-      (PLUS . "+")
-      (MOD . "%")
-      (DIV . "/")
-      (MULT . "*")
-      (AMP . "&")
-      (GT . ">")
-      (LT . "<")
-      (HAT . "^")
-      (NE . "!=")
-      (LTGT . "<>")
-      (HATEQ . "^=")
-      (OREQ . "|=")
-      (AMPEQ . "&=")
-      (MODEQ . "%=")
-      (DIVEQ . "/=")
-      (MULTEQ . "*=")
-      (MINUSEQ . "-=")
-      (PLUSEQ . "+=")
-      (LE . "<=")
-      (GE . ">=")
-      (EQ . "==")
-      (EXPONENT . "**")
-      (GTGT . ">>")
-      (LTLT . "<<")
-      (DIVDIV . "//")
-      (DIVDIVEQ . "//=")
-      (EXPEQ . "**=")
-      (GTGTEQ . ">>=")
-      (LTLTEQ . "<<="))
-     ("close-paren"
-      (RBRACK . "]")
-      (RBRACE . "}")
-      (RPAREN . ")"))
-     ("open-paren"
-      (LBRACK . "[")
-      (LBRACE . "{")
-      (LPAREN . "("))
-     ("block"
-      (BRACK_BLOCK . "(LBRACK RBRACK)")
-      (BRACE_BLOCK . "(LBRACE RBRACE)")
-      (PAREN_BLOCK . "(LPAREN RPAREN)"))
-     ("indentation"
-      (INDENT_BLOCK . "(INDENT DEDENT)")
-      (DEDENT . "[^:INDENT:]")
-      (INDENT . "^\\s-+"))
-     ("newline"
-      (NEWLINE . "\n"))
-     ("charquote"
-      (BACKSLASH . "\\")))
-   '(("keyword" :declared t)
-     ("symbol" :declared t)
-     ("number" :declared t)
-     ("punctuation" :declared t)
-     ("block" :declared t)))
-  "Table of lexical tokens.")
-
-(defconst wisent-python-wy--parse-table
-  (progn
-    (eval-when-compile
-      (require 'semantic/wisent/comp))
-    (wisent-compile-grammar
-     '((BACKSLASH NEWLINE INDENT DEDENT INDENT_BLOCK PAREN_BLOCK BRACE_BLOCK 
BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK RBRACK LTLTEQ GTGTEQ EXPEQ 
DIVDIVEQ DIVDIV LTLT GTGT EXPONENT EQ GE LE PLUSEQ MINUSEQ MULTEQ DIVEQ MODEQ 
AMPEQ OREQ HATEQ LTGT NE HAT LT GT AMP MULT DIV MOD PLUS MINUS PERIOD TILDE BAR 
COLON SEMICOLON COMMA ASSIGN BACKQUOTE AT STRING_LITERAL NUMBER_LITERAL NAME 
AND AS ASSERT BREAK CLASS CONTINUE DEF DEL ELIF ELSE EXCEPT EXEC FINALLY FOR 
FROM GLOBAL IF IMPORT IN IS LAMBDA NOT OR PASS PRINT RAISE RETURN TRY WHILE 
WITH YIELD)
-       nil
-       (goal
-       ((NEWLINE))
-       ((simple_stmt))
-       ((compound_stmt)))
-       (simple_stmt
-       ((small_stmt_list semicolon_opt NEWLINE)))
-       (small_stmt_list
-       ((small_stmt))
-       ((small_stmt_list SEMICOLON small_stmt)))
-       (small_stmt
-       ((expr_stmt))
-       ((print_stmt))
-       ((del_stmt))
-       ((pass_stmt))
-       ((flow_stmt))
-       ((import_stmt))
-       ((global_stmt))
-       ((exec_stmt))
-       ((assert_stmt)))
-       (print_stmt
-       ((PRINT print_stmt_trailer)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (print_stmt_trailer
-       ((test_list_opt)
-        nil)
-       ((GTGT test trailing_test_list_with_opt_comma_opt)
-        nil))
-       (trailing_test_list_with_opt_comma_opt
-       (nil)
-       ((trailing_test_list comma_opt)
-        nil))
-       (trailing_test_list
-       ((COMMA test)
-        nil)
-       ((trailing_test_list COMMA test)
-        nil))
-       (expr_stmt
-       ((testlist expr_stmt_trailer)
-        (if
-            (and $2
-                 (stringp $1)
-                 (string-match "^\\(\\sw\\|\\s_\\)+$" $1))
-            (wisent-raw-tag
-             (semantic-tag-new-variable $1 nil nil))
-          (wisent-raw-tag
-           (semantic-tag-new-code $1 nil)))))
-       (expr_stmt_trailer
-       ((augassign testlist))
-       ((eq_testlist_zom)))
-       (eq_testlist_zom
-       (nil)
-       ((eq_testlist_zom ASSIGN testlist)
-        (identity $3)))
-       (augassign
-       ((PLUSEQ))
-       ((MINUSEQ))
-       ((MULTEQ))
-       ((DIVEQ))
-       ((MODEQ))
-       ((AMPEQ))
-       ((OREQ))
-       ((HATEQ))
-       ((LTLTEQ))
-       ((GTGTEQ))
-       ((EXPEQ))
-       ((DIVDIVEQ)))
-       (del_stmt
-       ((DEL exprlist)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (exprlist
-       ((expr_list comma_opt)
-        nil))
-       (expr_list
-       ((expr)
-        nil)
-       ((expr_list COMMA expr)
-        nil))
-       (pass_stmt
-       ((PASS)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (flow_stmt
-       ((break_stmt))
-       ((continue_stmt))
-       ((return_stmt))
-       ((raise_stmt))
-       ((yield_stmt)))
-       (break_stmt
-       ((BREAK)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (continue_stmt
-       ((CONTINUE)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (return_stmt
-       ((RETURN testlist_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (testlist_opt
-       (nil)
-       ((testlist)
-        nil))
-       (yield_stmt
-       ((YIELD)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil)))
-       ((YIELD testlist)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (raise_stmt
-       ((RAISE zero_one_two_or_three_tests)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (zero_one_two_or_three_tests
-       (nil)
-       ((test zero_one_or_two_tests)
-        nil))
-       (zero_one_or_two_tests
-       (nil)
-       ((COMMA test zero_or_one_comma_test)
-        nil))
-       (zero_or_one_comma_test
-       (nil)
-       ((COMMA test)
-        nil))
-       (import_stmt
-       ((IMPORT dotted_as_name_list)
-        (wisent-raw-tag
-         (semantic-tag-new-include $2 nil)))
-       ((FROM dotted_name IMPORT star_or_import_as_name_list)
-        (wisent-raw-tag
-         (semantic-tag-new-include $2 nil))))
-       (dotted_as_name_list
-       ((dotted_as_name_list COMMA dotted_as_name)
-        (cons $3 $1))
-       ((dotted_as_name)
-        (list $1)))
-       (star_or_import_as_name_list
-       ((MULT)
-        nil)
-       ((import_as_name_list)
-        nil))
-       (import_as_name_list
-       ((import_as_name)
-        nil)
-       ((import_as_name_list COMMA import_as_name)
-        nil))
-       (import_as_name
-       ((NAME as_name_opt)
-        nil))
-       (dotted_as_name
-       ((dotted_name as_name_opt)))
-       (as_name_opt
-       (nil)
-       ((AS NAME)
-        (identity $2)))
-       (dotted_name
-       ((NAME))
-       ((dotted_name PERIOD NAME)
-        (format "%s.%s" $1 $3)))
-       (global_stmt
-       ((GLOBAL comma_sep_name_list)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (comma_sep_name_list
-       ((NAME))
-       ((comma_sep_name_list COMMA NAME)))
-       (exec_stmt
-       ((EXEC expr exec_trailer)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (exec_trailer
-       (nil)
-       ((IN test comma_test_opt)
-        nil))
-       (comma_test_opt
-       (nil)
-       ((COMMA test)
-        nil))
-       (assert_stmt
-       ((ASSERT test comma_test_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (compound_stmt
-       ((if_stmt))
-       ((while_stmt))
-       ((for_stmt))
-       ((try_stmt))
-       ((with_stmt))
-       ((funcdef))
-       ((class_declaration)))
-       (if_stmt
-       ((IF test COLON suite elif_suite_pair_list else_suite_pair_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (elif_suite_pair_list
-       (nil)
-       ((elif_suite_pair_list ELIF test COLON suite)
-        nil))
-       (else_suite_pair_opt
-       (nil)
-       ((ELSE COLON suite)
-        nil))
-       (suite
-       ((simple_stmt)
-        (list $1))
-       ((NEWLINE indented_block)
-        (progn $2)))
-       (indented_block
-       ((INDENT_BLOCK)
-        (semantic-parse-region
-         (car $region1)
-         (cdr $region1)
-         'indented_block_body 1)))
-       (indented_block_body
-       ((INDENT)
-        nil)
-       ((DEDENT)
-        nil)
-       ((simple_stmt))
-       ((compound_stmt)))
-       (while_stmt
-       ((WHILE test COLON suite else_suite_pair_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (for_stmt
-       ((FOR exprlist IN testlist COLON suite else_suite_pair_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (try_stmt
-       ((TRY COLON suite except_clause_suite_pair_list else_suite_pair_opt)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil)))
-       ((TRY COLON suite FINALLY COLON suite)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (except_clause_suite_pair_list
-       ((except_clause COLON suite)
-        nil)
-       ((except_clause_suite_pair_list except_clause COLON suite)
-        nil))
-       (except_clause
-       ((EXCEPT zero_one_or_two_test)
-        nil))
-       (zero_one_or_two_test
-       (nil)
-       ((test zero_or_one_comma_test)
-        nil))
-       (with_stmt
-       ((WITH test COLON suite)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil)))
-       ((WITH test with_var COLON suite)
-        (wisent-raw-tag
-         (semantic-tag-new-code $1 nil))))
-       (with_var
-       ((AS expr)
-        nil))
-       (decorator
-       ((AT dotted_name varargslist_opt NEWLINE)
-        (wisent-raw-tag
-         (semantic-tag-new-function $2 "decorator" $3))))
-       (decorators
-       ((decorator)
-        (list $1))
-       ((decorator decorators)
-        (cons $1 $2)))
-       (funcdef
-       ((DEF NAME function_parameter_list COLON suite)
-        (wisent-python-reconstitute-function-tag
-         (wisent-raw-tag
-          (semantic-tag-new-function $2 nil $3))
-         $5))
-       ((decorators DEF NAME function_parameter_list COLON suite)
-        (wisent-python-reconstitute-function-tag
-         (wisent-raw-tag
-          (semantic-tag-new-function $3 nil $4 :decorators $1))
-         $6)))
-       (function_parameter_list
-       ((PAREN_BLOCK)
-        (let
-            ((wisent-python-EXPANDING-block t))
-          (semantic-parse-region
-           (car $region1)
-           (cdr $region1)
-           'function_parameters 1))))
-       (function_parameters
-       ((LPAREN)
-        nil)
-       ((RPAREN)
-        nil)
-       ((function_parameter COMMA))
-       ((function_parameter RPAREN)))
-       (function_parameter
-       ((fpdef_opt_test))
-       ((MULT NAME)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil nil)))
-       ((EXPONENT NAME)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil nil))))
-       (class_declaration
-       ((CLASS NAME paren_class_list_opt COLON suite)
-        (wisent-python-reconstitute-class-tag
-         (wisent-raw-tag
-          (semantic-tag-new-type $2 $1 $5
-                                 (cons $3 nil))))))
-       (paren_class_list_opt
-       (nil)
-       ((paren_class_list)))
-       (paren_class_list
-       ((PAREN_BLOCK)
-        (let
-            ((wisent-python-EXPANDING-block t))
-          (mapcar 'semantic-tag-name
-                  (semantic-parse-region
-                   (car $region1)
-                   (cdr $region1)
-                   'paren_classes 1)))))
-       (paren_classes
-       ((LPAREN)
-        nil)
-       ((RPAREN)
-        nil)
-       ((paren_class COMMA)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $1 nil nil)))
-       ((paren_class RPAREN)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $1 nil nil))))
-       (paren_class
-       ((dotted_name)))
-       (test
-       ((test_test))
-       ((lambdef)))
-       (test_test
-       ((and_test))
-       ((test_test OR and_test)
-        nil))
-       (and_test
-       ((not_test))
-       ((and_test AND not_test)
-        nil))
-       (not_test
-       ((NOT not_test)
-        nil)
-       ((comparison)))
-       (comparison
-       ((expr))
-       ((comparison comp_op expr)
-        nil))
-       (comp_op
-       ((LT))
-       ((GT))
-       ((EQ))
-       ((GE))
-       ((LE))
-       ((LTGT))
-       ((NE))
-       ((IN))
-       ((NOT IN))
-       ((IS))
-       ((IS NOT)))
-       (expr
-       ((xor_expr))
-       ((expr BAR xor_expr)
-        nil))
-       (xor_expr
-       ((and_expr))
-       ((xor_expr HAT and_expr)
-        nil))
-       (and_expr
-       ((shift_expr))
-       ((and_expr AMP shift_expr)
-        nil))
-       (shift_expr
-       ((arith_expr))
-       ((shift_expr shift_expr_operators arith_expr)
-        nil))
-       (shift_expr_operators
-       ((LTLT))
-       ((GTGT)))
-       (arith_expr
-       ((term))
-       ((arith_expr plus_or_minus term)
-        nil))
-       (plus_or_minus
-       ((PLUS))
-       ((MINUS)))
-       (term
-       ((factor))
-       ((term term_operator factor)
-        nil))
-       (term_operator
-       ((MULT))
-       ((DIV))
-       ((MOD))
-       ((DIVDIV)))
-       (factor
-       ((prefix_operators factor)
-        nil)
-       ((power)))
-       (prefix_operators
-       ((PLUS))
-       ((MINUS))
-       ((TILDE)))
-       (power
-       ((atom trailer_zom exponent_zom)
-        (concat $1
-                (if $2
-                    (concat " " $2 " ")
-                  "")
-                (if $3
-                    (concat " " $3)
-                  ""))))
-       (trailer_zom
-       (nil)
-       ((trailer_zom trailer)
-        nil))
-       (exponent_zom
-       (nil)
-       ((exponent_zom EXPONENT factor)
-        nil))
-       (trailer
-       ((PAREN_BLOCK)
-        nil)
-       ((BRACK_BLOCK)
-        nil)
-       ((PERIOD NAME)
-        nil))
-       (atom
-       ((PAREN_BLOCK)
-        nil)
-       ((BRACK_BLOCK)
-        nil)
-       ((BRACE_BLOCK)
-        nil)
-       ((BACKQUOTE testlist BACKQUOTE)
-        nil)
-       ((NAME))
-       ((NUMBER_LITERAL))
-       ((one_or_more_string)))
-       (test_list_opt
-       (nil)
-       ((testlist)
-        nil))
-       (testlist
-       ((comma_sep_test_list comma_opt)))
-       (comma_sep_test_list
-       ((test))
-       ((comma_sep_test_list COMMA test)
-        (format "%s, %s" $1 $3)))
-       (one_or_more_string
-       ((STRING_LITERAL))
-       ((one_or_more_string STRING_LITERAL)
-        (concat $1 $2)))
-       (lambdef
-       ((LAMBDA varargslist_opt COLON test)
-        (format "%s %s" $1
-                (or $2 ""))))
-       (varargslist_opt
-       (nil)
-       ((varargslist)))
-       (varargslist
-       ((fpdef_opt_test_list_comma_zom rest_args)
-        (nconc $2 $1))
-       ((fpdef_opt_test_list comma_opt)))
-       (rest_args
-       ((MULT NAME multmult_name_opt)
-        nil)
-       ((EXPONENT NAME)
-        nil))
-       (multmult_name_opt
-       (nil)
-       ((COMMA EXPONENT NAME)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $3 nil nil))))
-       (fpdef_opt_test_list_comma_zom
-       (nil)
-       ((fpdef_opt_test_list_comma_zom fpdef_opt_test COMMA)
-        (nconc $2 $1)))
-       (fpdef_opt_test_list
-       ((fpdef_opt_test))
-       ((fpdef_opt_test_list COMMA fpdef_opt_test)
-        (nconc $3 $1)))
-       (fpdef_opt_test
-       ((fpdef eq_test_opt)))
-       (fpdef
-       ((NAME)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $1 nil nil))))
-       (fplist
-       ((fpdef_list comma_opt)))
-       (fpdef_list
-       ((fpdef))
-       ((fpdef_list COMMA fpdef)))
-       (eq_test_opt
-       (nil)
-       ((ASSIGN test)
-        nil))
-       (comma_opt
-       (nil)
-       ((COMMA)))
-       (semicolon_opt
-       (nil)
-       ((SEMICOLON))))
-     '(goal function_parameter paren_class indented_block function_parameters 
paren_classes indented_block_body)))
-  "Parser table.")
-
-(defun wisent-python-wy--install-parser ()
-  "Setup the Semantic Parser."
-  (semantic-install-function-overrides
-   '((parse-stream . wisent-parse-stream)))
-  (setq semantic-parser-name "LALR"
-       semantic--parse-table wisent-python-wy--parse-table
-       semantic-debug-parser-source "python.wy"
-       semantic-flex-keywords-obarray wisent-python-wy--keyword-table
-       semantic-lex-types-obarray wisent-python-wy--token-table)
-  ;; Collect unmatched syntax lexical tokens
-  (semantic-make-local-hook 'wisent-discarding-token-functions)
-  (add-hook 'wisent-discarding-token-functions
-           'wisent-collect-unmatched-syntax nil t))
-
-
-;;; Analyzers
-;;
-(define-lex-block-type-analyzer wisent-python-wy--<block>-block-analyzer
-  "block analyzer for <block> tokens."
-  "\\s(\\|\\s)"
-  '((("(" LPAREN PAREN_BLOCK)
-     ("{" LBRACE BRACE_BLOCK)
-     ("[" LBRACK BRACK_BLOCK))
-    (")" RPAREN)
-    ("}" RBRACE)
-    ("]" RBRACK))
-  )
-
-(define-lex-regex-type-analyzer wisent-python-wy--<symbol>-regexp-analyzer
-  "regexp analyzer for <symbol> tokens."
-  "\\(\\sw\\|\\s_\\)+"
-  nil
-  'NAME)
-
-(define-lex-regex-type-analyzer wisent-python-wy--<number>-regexp-analyzer
-  "regexp analyzer for <number> tokens."
-  semantic-lex-number-expression
-  nil
-  'NUMBER_LITERAL)
-
-(define-lex-string-type-analyzer 
wisent-python-wy--<punctuation>-string-analyzer
-  "string analyzer for <punctuation> tokens."
-  "\\(\\s.\\|\\s$\\|\\s'\\)+"
-  '((AT . "@")
-    (BACKQUOTE . "`")
-    (ASSIGN . "=")
-    (COMMA . ",")
-    (SEMICOLON . ";")
-    (COLON . ":")
-    (BAR . "|")
-    (TILDE . "~")
-    (PERIOD . ".")
-    (MINUS . "-")
-    (PLUS . "+")
-    (MOD . "%")
-    (DIV . "/")
-    (MULT . "*")
-    (AMP . "&")
-    (GT . ">")
-    (LT . "<")
-    (HAT . "^")
-    (NE . "!=")
-    (LTGT . "<>")
-    (HATEQ . "^=")
-    (OREQ . "|=")
-    (AMPEQ . "&=")
-    (MODEQ . "%=")
-    (DIVEQ . "/=")
-    (MULTEQ . "*=")
-    (MINUSEQ . "-=")
-    (PLUSEQ . "+=")
-    (LE . "<=")
-    (GE . ">=")
-    (EQ . "==")
-    (EXPONENT . "**")
-    (GTGT . ">>")
-    (LTLT . "<<")
-    (DIVDIV . "//")
-    (DIVDIVEQ . "//=")
-    (EXPEQ . "**=")
-    (GTGTEQ . ">>=")
-    (LTLTEQ . "<<="))
-  'punctuation)
-
-(define-lex-keyword-type-analyzer wisent-python-wy--<keyword>-keyword-analyzer
-  "keyword analyzer for <keyword> tokens."
-  "\\(\\sw\\|\\s_\\)+")
-
-
-;;; Epilogue
-;;
-
-(provide 'semantic/wisent/python-wy)
-
-;;; semantic/wisent/python-wy.el ends here

=== removed file 'lisp/cedet/srecode/srt-wy.el'
--- a/lisp/cedet/srecode/srt-wy.el      2013-06-02 16:37:37 +0000
+++ b/lisp/cedet/srecode/srt-wy.el      1970-01-01 00:00:00 +0000
@@ -1,306 +0,0 @@
-;;; srecode/srt-wy.el --- Generated parser support file
-
-;; Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; 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 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; This file was generated from admin/grammars/srecode-template.wy.
-
-;;; Code:
-
-(require 'semantic/lex)
-(eval-when-compile (require 'semantic/bovine))
-
-;;; Prologue
-;;
-
-;;; Declarations
-;;
-(defconst srecode-template-wy--keyword-table
-  (semantic-lex-make-keyword-table
-   '(("set" . SET)
-     ("show" . SHOW)
-     ("macro" . MACRO)
-     ("context" . CONTEXT)
-     ("template" . TEMPLATE)
-     ("sectiondictionary" . SECTIONDICTIONARY)
-     ("section" . SECTION)
-     ("end" . END)
-     ("prompt" . PROMPT)
-     ("default" . DEFAULT)
-     ("defaultmacro" . DEFAULTMACRO)
-     ("read" . READ)
-     ("bind" . BIND))
-   '(("bind" summary "bind \"<letter>\"")
-     ("read" summary "prompt <symbol> \"Describe Symbol: \" [default[macro] 
<lispsym>|\"valuetext\"] [read <lispsym>]")
-     ("defaultmacro" summary "prompt <symbol> \"Describe Symbol: \" 
[default[macro] <lispsym>|\"valuetext\"] [read <lispsym>]")
-     ("default" summary "prompt <symbol> \"Describe Symbol: \" [default[macro] 
<lispsym>|\"valuetext\"] [read <lispsym>]")
-     ("prompt" summary "prompt <symbol> \"Describe Symbol: \" [default[macro] 
<lispsym>|\"valuetext\"] [read <lispsym>]")
-     ("end" summary "section ... end")
-     ("section" summary "section <name>\\n <dictionary entries>\\n end")
-     ("sectiondictionary" summary "sectiondictionary <name>\\n <dictionary 
entries>")
-     ("template" summary "template <name>\\n <template definition>")
-     ("context" summary "context <name>")
-     ("macro" summary "... macro \"string\" ...")
-     ("show" summary "show <name>   ; to show a section")
-     ("set" summary "set <name> <value>")))
-  "Table of language keywords.")
-
-(defconst srecode-template-wy--token-table
-  (semantic-lex-make-type-table
-   '(("number"
-      (number))
-     ("string"
-      (string))
-     ("symbol"
-      (symbol))
-     ("property"
-      (property))
-     ("separator"
-      (TEMPLATE_BLOCK . "^----"))
-     ("newline"
-      (newline)))
-   '(("number" :declared t)
-     ("string" :declared t)
-     ("symbol" :declared t)
-     ("property" syntax ":\\(\\w\\|\\s_\\)*")
-     ("property" :declared t)
-     ("newline" :declared t)
-     ("punctuation" syntax "\\s.+")
-     ("punctuation" :declared t)
-     ("keyword" :declared t)))
-  "Table of lexical tokens.")
-
-(defconst srecode-template-wy--parse-table
-  (progn
-    (eval-when-compile
-      (require 'semantic/wisent/comp))
-    (wisent-compile-grammar
-     '((SET SHOW MACRO CONTEXT TEMPLATE SECTIONDICTIONARY SECTION END PROMPT 
DEFAULT DEFAULTMACRO READ BIND newline TEMPLATE_BLOCK property symbol string 
number)
-       nil
-       (template_file
-       ((newline)
-        nil)
-       ((context))
-       ((prompt))
-       ((variable))
-       ((template)))
-       (context
-       ((CONTEXT symbol newline)
-        (wisent-raw-tag
-         (semantic-tag $2 'context))))
-       (prompt
-       ((PROMPT symbol string opt-default-fcn opt-read-fcn newline)
-        (wisent-raw-tag
-         (semantic-tag $2 'prompt :text
-                       (read $3)
-                       :default $4 :read $5))))
-       (opt-default-fcn
-       ((DEFAULT symbol)
-        (progn
-          (read $2)))
-       ((DEFAULT string)
-        (progn
-          (read $2)))
-       ((DEFAULTMACRO string)
-        (progn
-          (cons 'macro
-                (read $2))))
-       (nil nil))
-       (opt-read-fcn
-       ((READ symbol)
-        (progn
-          (read $2)))
-       (nil nil))
-       (variable
-       ((SET symbol insertable-string-list newline)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil $3)))
-       ((SET symbol number newline)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil
-                                    (list $3))))
-       ((SHOW symbol newline)
-        (wisent-raw-tag
-         (semantic-tag-new-variable $2 nil t))))
-       (insertable-string-list
-       ((insertable-string)
-        (list $1))
-       ((insertable-string-list insertable-string)
-        (append $1
-                (list $2))))
-       (insertable-string
-       ((string)
-        (read $1))
-       ((MACRO string)
-        (cons 'macro
-              (read $2))))
-       (template
-       ((TEMPLATE templatename opt-dynamic-arguments newline opt-string 
section-dictionary-list TEMPLATE_BLOCK newline opt-bind)
-        (wisent-raw-tag
-         (semantic-tag-new-function $2 nil $3 :documentation $5 :code $7 
:dictionaries $6 :binding $9))))
-       (templatename
-       ((symbol))
-       ((PROMPT))
-       ((CONTEXT))
-       ((TEMPLATE))
-       ((DEFAULT))
-       ((MACRO))
-       ((DEFAULTMACRO))
-       ((READ))
-       ((SET)))
-       (opt-dynamic-arguments
-       ((property opt-dynamic-arguments)
-        (cons $1 $2))
-       (nil nil))
-       (opt-string
-       ((string newline)
-        (read $1))
-       (nil nil))
-       (section-dictionary-list
-       (nil nil)
-       ((section-dictionary-list flat-section-dictionary)
-        (append $1
-                (list $2)))
-       ((section-dictionary-list section-dictionary)
-        (append $1
-                (list $2))))
-       (flat-section-dictionary
-       ((SECTIONDICTIONARY string newline flat-dictionary-entry-list)
-        (cons
-         (read $2)
-         $4)))
-       (flat-dictionary-entry-list
-       (nil nil)
-       ((flat-dictionary-entry-list flat-dictionary-entry)
-        (append $1 $2)))
-       (flat-dictionary-entry
-       ((variable)
-        (wisent-cook-tag $1)))
-       (section-dictionary
-       ((SECTION string newline dictionary-entry-list END newline)
-        (cons
-         (read $2)
-         $4)))
-       (dictionary-entry-list
-       (nil nil)
-       ((dictionary-entry-list dictionary-entry)
-        (append $1 $2)))
-       (dictionary-entry
-       ((variable)
-        (wisent-cook-tag $1))
-       ((section-dictionary)
-        (list $1)))
-       (opt-bind
-       ((BIND string newline)
-        (read $2))
-       (nil nil)))
-     '(template_file)))
-  "Parser table.")
-
-(defun srecode-template-wy--install-parser ()
-  "Setup the Semantic Parser."
-  (semantic-install-function-overrides
-   '((parse-stream . wisent-parse-stream)))
-  (setq semantic-parser-name "LALR"
-       semantic--parse-table srecode-template-wy--parse-table
-       semantic-debug-parser-source "srecode-template.wy"
-       semantic-flex-keywords-obarray srecode-template-wy--keyword-table
-       semantic-lex-types-obarray srecode-template-wy--token-table)
-  ;; Collect unmatched syntax lexical tokens
-  (semantic-make-local-hook 'wisent-discarding-token-functions)
-  (add-hook 'wisent-discarding-token-functions
-           'wisent-collect-unmatched-syntax nil t))
-
-
-;;; Analyzers
-;;
-(define-lex-regex-type-analyzer srecode-template-wy--<property>-regexp-analyzer
-  "regexp analyzer for <property> tokens."
-  ":\\(\\w\\|\\s_\\)*"
-  nil
-  'property)
-
-(define-lex-regex-type-analyzer srecode-template-wy--<symbol>-regexp-analyzer
-  "regexp analyzer for <symbol> tokens."
-  "\\(\\sw\\|\\s_\\)+"
-  nil
-  'symbol)
-
-(define-lex-regex-type-analyzer srecode-template-wy--<number>-regexp-analyzer
-  "regexp analyzer for <number> tokens."
-  semantic-lex-number-expression
-  nil
-  'number)
-
-(define-lex-string-type-analyzer 
srecode-template-wy--<punctuation>-string-analyzer
-  "string analyzer for <punctuation> tokens."
-  "\\s.+"
-  nil
-  'punctuation)
-
-(define-lex-sexp-type-analyzer srecode-template-wy--<string>-sexp-analyzer
-  "sexp analyzer for <string> tokens."
-  "\\s\""
-  'string)
-
-(define-lex-keyword-type-analyzer 
srecode-template-wy--<keyword>-keyword-analyzer
-  "keyword analyzer for <keyword> tokens."
-  "\\(\\sw\\|\\s_\\)+")
-
-
-;;; Epilogue
-;;
-(define-lex-simple-regex-analyzer srecode-template-property-analyzer
-  "Detect and create a dynamic argument properties."
-  ":\\(\\w\\|\\s_\\)*" 'property 0)
-
-(define-lex-regex-analyzer srecode-template-separator-block
-  "Detect and create a template quote block."
-  "^----\n"
-  (semantic-lex-push-token
-   (semantic-lex-token
-    'TEMPLATE_BLOCK
-    (match-end 0)
-    (semantic-lex-unterminated-syntax-protection 'TEMPLATE_BLOCK
-      (goto-char (match-end 0))
-      (re-search-forward "^----$")
-      (match-beginning 0))))
-  (setq semantic-lex-end-point (point)))
-
-
-(define-lex wisent-srecode-template-lexer
-  "Lexical analyzer that handles SRecode Template buffers.
-It ignores whitespace, newlines and comments."
-  semantic-lex-newline
-  semantic-lex-ignore-whitespace
-  semantic-lex-ignore-newline
-  semantic-lex-ignore-comments
-  srecode-template-separator-block
-  srecode-template-wy--<keyword>-keyword-analyzer
-  srecode-template-property-analyzer
-  srecode-template-wy--<number>-regexp-analyzer
-  srecode-template-wy--<symbol>-regexp-analyzer
-  srecode-template-wy--<string>-sexp-analyzer
-  srecode-template-wy--<punctuation>-string-analyzer
-  semantic-lex-default-action
-  )
-
-(provide 'srecode/srt-wy)
-
-;;; srecode/srt-wy.el ends here


reply via email to

[Prev in Thread] Current Thread [Next in Thread]