Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
36a305a7
Commit
36a305a7
authored
Oct 07, 2012
by
Daniel Colascione
Browse files
Merge from trunk
parents
2ab329f3
795b1482
Changes
687
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
343 additions
and
77 deletions
+343
-77
ChangeLog
ChangeLog
+81
-0
Makefile.in
Makefile.in
+12
-10
admin/ChangeLog
admin/ChangeLog
+45
-0
admin/admin.el
admin/admin.el
+34
-9
admin/grammars/README
admin/grammars/README
+2
-2
admin/grammars/c.by
admin/grammars/c.by
+14
-1
admin/grammars/grammar.wy
admin/grammars/grammar.wy
+10
-2
admin/grammars/java-tags.wy
admin/grammars/java-tags.wy
+10
-2
admin/grammars/js.wy
admin/grammars/js.wy
+1
-0
admin/grammars/make.by
admin/grammars/make.by
+1
-0
admin/grammars/python.wy
admin/grammars/python.wy
+56
-8
admin/grammars/scheme.by
admin/grammars/scheme.by
+1
-0
admin/grammars/srecode-template.wy
admin/grammars/srecode-template.wy
+51
-16
admin/merge-gnulib
admin/merge-gnulib
+1
-1
admin/notes/bugtracker
admin/notes/bugtracker
+1
-1
admin/unidata/BidiMirroring.txt
admin/unidata/BidiMirroring.txt
+7
-14
admin/unidata/UnicodeData.txt
admin/unidata/UnicodeData.txt
+5
-4
autogen.sh
autogen.sh
+1
-1
autogen/Makefile.in
autogen/Makefile.in
+9
-6
autogen/aclocal.m4
autogen/aclocal.m4
+1
-0
No files found.
ChangeLog
View file @
36a305a7
2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
* configure.ac: Check that OSX is 10.4 or newer.
2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
Improve sys_siglist detection.
* configure.ac (sys_siglist): Look for its decl in <signal.h>.
Otherwise, it's not found in either Fedora 17 or Solaris 11.
2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2012-10-02 pselect: reject invalid file descriptors
2012-10-02 ptsname: reject invalid file descriptors
2012-10-02 manywarnings: cater to more gcc infelicities
2012-09-30 sockets, sys_stat: restore AC_C_INLINE
* lib/pselect.c, lib/stdlib.in.h, m4/manywarnings.m4, m4/pselect.m4:
* m4/stdlib_h.m4, m4/sys_stat_h.m4: Update from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2012-09-28 extern-inline: provide a -Wundef safe config.h
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
Check more robustly for timer_settime.
This should fix an OS X build problem reported by Ivan Andrus in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
does threads its own way.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
* Makefile.in (bootstrap): Set MAKEFILE_NAME when building Makefile,
to avoid problems with recursion when using GNU make.
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
* Makefile.in (bootstrap): Simplify build procedure.
Suggested by Wolfgang Jenker in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00456.html>.
Merge from gnulib, incorporating:
2012-09-22 sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
2012-09-19 Tassilo Horn <tsdh@gnu.org>
* doc/emacs/misc.texi (DocView Slicing): Document new slice from
BoundingBox feature.
2012-09-18 Jan Djärv <jan.h.d@swipnet.se>
* configure.ac (HAVE_GTK): Mention if we use GTK2 or GTK3.
2012-09-17 Andreas Schwab <schwab@linux-m68k.org>
* Makefile.in (bootstrap): Revert last change. Run config.status
after config.status --recheck, run configure from $(srcdir).
(config.status): Run configure from $(srcdir).
2012-09-17 Paul Eggert <eggert@cs.ucla.edu>
* Makefile.in: Fix build error on FreeBSD.
($(MAKEFILE_NAME)): Pass MAKE='$(MAKE)' to config.status's env.
Suggested by Wolfgang Jenker in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00430.html>.
(MAKE_CONFIG_STATUS): Remove. Remaining use expanded.
This undoes part of the 2012-09-10 patch.
(bootstrap): Run ./configure, rather than trying to run config.status
if it exists. That builds src/epaths.h more reliably.
Run autogen/copy_autogen if autogen.sh fails,
to create 'configure'; problem reported by Andreas Schwab in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00438.html>.
* autogen.sh: Exit with status 1 when failing due to missing tools,
reverting the 2012-09-10 change to this file.
* autogen/copy_autogen: Fail if one of the subsidiary actions fail.
Use 'cp -f' for the build-aux files, since the destinations are
typically read-only.
Remove no-longer-needed Solaris 2.4 vfork bug workaround.
* configure.ac (ac_cv_func_vfork_works): Default to 'no' on
Solaris 2.4, so that AC_FUNC_VFORK doesn't think vfork works.
...
...
Makefile.in
View file @
36a305a7
...
...
@@ -355,22 +355,24 @@ blessmail: Makefile src FRC
# config.status overrides MAKEFILE_NAME with a bogus name when creating
# src/epaths.h, so that 'make epaths-force' does not recursively invoke
# config.status and overwrite config.status while executing it (Bug#11214).
#
# 'make bootstrap' overrides MAKEFILE_NAME to a nonexistent file but
# then attempts to build that file. This forces 'Makefile', 'lib/Makefile',
# etc. to be built without running into similar recursion problems.
MAKEFILE_NAME
=
Makefile
$(MAKEFILE_NAME)
:
config.status $(srcdir)/src/config.in
\
$(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
./config.status
MAKE
=
'
$(MAKE)
'
./config.status
# Don't erase these files if make is interrupted while refreshing them.
.PRECIOUS
:
Makefile config.status
MAKE_CONFIG_STATUS
=
\
config.status
:
${srcdir}/configure ${srcdir}/lisp/version.el
if
[
-x
./config.status
]
;
then
\
./config.status
--recheck
;
\
else
\
.
/configure
$(CONFIGURE_FLAGS)
;
\
$(srcdir)
/configure
$(CONFIGURE_FLAGS)
;
\
fi
config.status
:
${srcdir}/configure ${srcdir}/lisp/version.el
$(MAKE_CONFIG_STATUS)
AUTOCONF_INPUTS
=
$(srcdir)
/configure.ac
$(srcdir)
/aclocal.m4
...
...
@@ -891,13 +893,13 @@ dvi:
.PHONY
:
bootstrap
# Bootstrapping does the following:
# * Remove files to start from a clean slate.
# * Run autogen.sh,
but don't worry about exit status 101 (missing too
ls
)
.
# *
B
uild Makefile, to
build
the build procedure itself.
# * Remove files to start from a
bootstrap-
clean slate.
# * Run autogen.sh,
falling back on copy_autogen if autogen.sh fai
ls.
# *
Reb
uild Makefile, to
update
the build procedure itself.
# * Do the actual build.
bootstrap
:
bootstrap-clean FRC
cd
$(srcdir)
&&
{
./autogen.sh
||
test
$$
?
-eq
101
;
}
$(MAKE
_CONFIG_STATUS)
cd
$(srcdir)
&&
{
./autogen.sh
||
autogen/copy_autogen
;
}
$(MAKE
)
$(MFLAGS)
MAKEFILE_NAME
=
force-Makefile force-Makefile
$(MAKE)
$(MFLAGS)
info all
.PHONY
:
check-declare
...
...
admin/ChangeLog
View file @
36a305a7
2012-10-07 Glenn Morris <rgm@gnu.org>
* admin.el (cusver-new-version): Set default.
(cusver-check): Improve interactive argument reading.
2012-10-06 Glenn Morris <rgm@gnu.org>
* admin.el (cusver-new-version): New variable.
(cusver-scan): Check if containing group has a :version.
(cusver-check): Add VERSION argument.
2012-10-01 David Engster <deng@randomsample.de>
* grammars/bovine-grammar.el:
* grammars/wisent-grammar.el: Move to lisp directory.
2012-10-01 David Engster <deng@randomsample.de>
* grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote):
Remove.
(bovine-grammar-expand-form): Test for emacs-major-version.
* grammars/c.by: Add EXPLICIT to keyword tokens.
* grammars/f90.by: Add %provide token.
* grammar/grammar.wy (semantic-grammar-lexer): Remove, since it
was copied to grammar.el. New %provide token to generate prefix
which conforms with Emacs conventions. Remove lexer definition,
which is now in grammar.el.
2012-09-27 Glenn Morris <rgm@gnu.org>
* admin.el (set-version): Set msdos.c's Vwindow_system_version.
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
Check more robustly for timer_settime.
* merge-gnulib (GNULIB_MODULES): Add timer-time.
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
* unidata/BidiMirroring.txt:
* unidata/UnicodeData.txt: Update to Unicode 6.2.
2012-09-17 Glenn Morris <rgm@gnu.org>
* admin.el (add-log-time-format): Declare.
...
...
admin/admin.el
View file @
36a305a7
...
...
@@ -129,8 +129,12 @@ Root must be the root of an Emacs source tree."
(
rx
(
and
"\"ProductVersion\""
(
0+
space
)
?,
(
0+
space
)
?\"
(
submatch
(
1+
(
in
"0-9, "
)))
"\\0\""
)))
;; Major version only.
(
when
(
string-match
"\\([0-9]\\{2,\\}\\)"
version
)
(
setq
version
(
match-string
1
version
))
(
set-version-in-file
root
"src/msdos.c"
version
(
rx
(
and
"Vwindow_system_version"
(
1+
not-newline
)
?\(
(
submatch
(
1+
(
in
"0-9"
)))
?\)
)))
(
set-version-in-file
root
"etc/refcards/ru-refcard.tex"
version
"
\\\\newcommand{\\\\versionemacs}\\[0\\]
\
{\\
(
[0-9]\\{2,\\}\\
)
}.+%.+version
of
Emacs
")
...
...
@@ -438,8 +442,12 @@ If optional OLD is non-nil, also include defvars."
))
"{}"
"+"
))
;; TODO if a defgroup with a version tag, apply to all customs in that
;; group (eg for new files).
(
defvar
cusver-new-version
(
format
"%s.%s"
emacs-major-version
(
1+
emacs-minor-version
))
"Version number that new defcustoms should have."
)
;; TODO do something about renamed variables with aliases to the old name?
;; Scan old cus-start.el to find variables moved from C to lisp?
(
defun
cusver-scan
(
file
&optional
old
)
"Scan FILE for `defcustom' calls.
Return a list with elements of the form (VAR . VER),
...
...
@@ -448,8 +456,8 @@ a :version tag having value VER (may be nil).
If optional argument OLD is non-nil, also scan for defvars."
(
let
((
m
(
format
"Scanning %s..."
file
))
(
re
(
format
"^[ \t]*\\((def%s\\)[ \t\n]"
(
if
old
"\\(
?:
custom\\|var\\)"
"custom"
)))
alist
var
ver
form
)
(
if
old
"\\(custom\\|var\\)"
"
\\(
custom
\\|group\\)
"
)))
alist
var
ver
form
glist
grp
)
(
message
"%s"
m
)
(
with-temp-buffer
(
insert-file-contents
file
)
...
...
@@ -457,11 +465,23 @@ If optional argument OLD is non-nil, also scan for defvars."
(
while
(
re-search-forward
re
nil
t
)
(
goto-char
(
match-beginning
1
))
(
if
(
and
(
setq
form
(
ignore-errors
(
read
(
current-buffer
))))
(
setq
var
(
car-safe
(
cdr-safe
form
)))
(
setq
var
(
car-safe
(
cdr-safe
form
)))
;; Exclude macros, eg (defcustom ,varname ...).
(
symbolp
var
))
(
setq
ver
(
car
(
cdr-safe
(
memq
:version
form
)))
alist
(
cons
(
cons
var
ver
)
alist
))
(
progn
(
setq
ver
(
car
(
cdr-safe
(
memq
:version
form
))))
(
if
(
equal
"group"
(
match-string
2
))
;; Group :version could be old.
(
if
(
equal
ver
cusver-new-version
)
(
setq
glist
(
cons
(
cons
var
ver
)
glist
)))
;; If it specifies a group and the whole group has a
;; version. use that.
(
unless
ver
(
setq
grp
(
car
(
cdr-safe
(
memq
:group
form
))))
(
and
grp
(
setq
grp
(
car
(
cdr-safe
grp
)))
; (quote foo) -> foo
(
setq
ver
(
assq
grp
glist
))))
(
setq
alist
(
cons
(
cons
var
ver
)
alist
))))
(
if
form
(
message
"Malformed defcustom: `%s'"
form
)))))
(
message
"%sdone"
m
)
alist
))
...
...
@@ -486,7 +506,7 @@ If optional argument OLD is non-nil, also scan for defvars."
;; TODO handle renamed things with aliases to the old names.
;; What to do about new files? Does everything in there need a :version,
;; or eg just the defgroup?
(
defun
cusver-check
(
newdir
olddir
)
(
defun
cusver-check
(
newdir
olddir
version
)
"Check that defcustoms have :version tags where needed.
NEWDIR is the current lisp/ directory, OLDDIR is that from the previous
release. A defcustom that is only in NEWDIR should have a :version
...
...
@@ -495,11 +515,16 @@ just converting a defvar to a defcustom does not require a :version bump.
Note that a :version tag should also be added if the value of a defcustom
changes (in a non-trivial way). This function does not check for that."
(
interactive
"DNew Lisp directory: \nDOld Lisp directory: "
)
(
interactive
(
list
(
read-directory-name
"New Lisp directory: "
)
(
read-directory-name
"Old Lisp directory: "
)
(
number-to-string
(
read-number
"New version number: "
(
string-to-number
cusver-new-version
)))))
(
or
(
file-directory-p
(
setq
newdir
(
expand-file-name
newdir
)))
(
error
"Directory `%s' not found"
newdir
))
(
or
(
file-directory-p
(
setq
olddir
(
expand-file-name
olddir
)))
(
error
"Directory `%s' not found"
olddir
))
(
setq
cusver-new-version
version
)
(
let*
((
newfiles
(
progn
(
message
"Finding new files with defcustoms..."
)
(
cusver-find-files
newdir
)))
(
oldfiles
(
progn
(
message
"Finding old files with defcustoms..."
)
...
...
admin/grammars/README
View file @
36a305a7
...
...
@@ -3,8 +3,8 @@ 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 bovine
-
grammar
.el
-f bovine-make-parsers
emacs -batch -Q -l wisent
-
grammar
.el
-f wisent-make-parsers
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
...
...
admin/grammars/c.by
View file @
36a305a7
;;; c.by -- LL grammar for C/C++ language specification
;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
;;
;; Author: Eric M. Ludlam <zappo@gnu.org>
...
...
@@ -39,6 +38,13 @@
;; > * Can't parse signature element: "RmcBucStatus* rftBucStatus"
%package semantic-c-by
%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")
}
%languagemode c-mode c++-mode
%start declaration
...
...
@@ -98,6 +104,8 @@
%put VIRTUAL summary "Method Modifier: virtual <type> <name>(...) ..."
%token MUTABLE "mutable"
%put MUTABLE summary "Member Declaration Modifier: mutable <type> <name> ..."
%token EXPLICIT "explicit"
%put EXPLICIT summary "Forbids implicit type conversion: explicit <constructor>"
%token STRUCT "struct"
%put STRUCT summary "Structure Type Declaration: struct [name] { ... };"
...
...
@@ -370,6 +378,9 @@ namespacesubparts
;; PUBLIC or PRIVATE bits. Ignore them for now.
| template
| using
;; Includes inside namespaces
| spp-include
(TAG $1 'include :inside-ns t)
| ;;EMPTY
;
...
...
@@ -1098,6 +1109,8 @@ functionname
function-pointer
: LPAREN STAR symbol RPAREN
( (concat "*" $3) )
| LPAREN symbol RPAREN
( $2 )
;
fun-or-proto-end
...
...
admin/grammars/grammar.wy
View file @
36a305a7
...
...
@@ -23,6 +23,9 @@
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
%package semantic-grammar-wy
%provide semantic/grammar-wy
%{
(defvar semantic-grammar-lex-c-char-re)
...
...
@@ -32,8 +35,6 @@
(defvar semantic-grammar-wy--rindx nil)
}
%package semantic-grammar-wy
%languagemode wy-mode
;; Main
...
...
@@ -52,6 +53,7 @@
%keyword LEFT "%left"
%keyword NONASSOC "%nonassoc"
%keyword PACKAGE "%package"
%keyword PROVIDE "%provide"
%keyword PREC "%prec"
%keyword PUT "%put"
%keyword QUOTEMODE "%quotemode"
...
...
@@ -134,6 +136,7 @@ decl:
| no_default_prec_decl
| languagemode_decl
| package_decl
| provide_decl
| precedence_decl
| put_decl
| quotemode_decl
...
...
@@ -165,6 +168,11 @@ package_decl:
`(PACKAGE-TAG ',$2 nil)
;
provide_decl:
PROVIDE SYMBOL
`(TAG ',$2 'provide)
;
precedence_decl:
associativity token_type_opt items
`(TAG ',$1 'assoc :type ',$2 :value ',$3)
...
...
admin/grammars/java-tags.wy
View file @
36a305a7
...
...
@@ -23,6 +23,7 @@
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
%package wisent-java-tags-wy
%provide semantic/wisent/javat-wy
%languagemode java-mode
...
...
@@ -444,7 +445,7 @@ class_member_declaration
;;; Type Declaration token
;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
interface_declaration
: modifiers_opt INTERFACE
IDENTIFIER
extends_interfaces_opt interface_body
: modifiers_opt INTERFACE
qualified_name
extends_interfaces_opt interface_body
(TYPE-TAG $3 $2 $5 (if $4 (cons nil $4)) :typemodifiers $1)
;
...
...
@@ -547,7 +548,7 @@ formal_parameters
;;; Variable token
;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
formal_parameter
: formal_parameter_modifier_opt type variable_declarator_id
: formal_parameter_modifier_opt type
opt_
variable_declarator_id
(VARIABLE-TAG $3 $2 nil :typemodifiers $1)
;
...
...
@@ -582,6 +583,13 @@ variable_declarator
(cons $1 $region)
;
opt_variable_declarator_id
: ;; EMPTY
(identity "")
| variable_declarator_id
(identity $1)
;
variable_declarator_id
: IDENTIFIER dims_opt
(concat $1 $2)
...
...
admin/grammars/js.wy
View file @
36a305a7
...
...
@@ -58,6 +58,7 @@
;; DAMAGE.
%package wisent-javascript-jv-wy
%provide semantic/wisent/js-wy
;; JAVE I prefere ecmascript-mode
%languagemode ecmascript-mode javascript-mode
...
...
admin/grammars/make.by
View file @
36a305a7
...
...
@@ -22,6 +22,7 @@
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
%package semantic-make-by
%provide semantic/bovine/make-by
%languagemode makefile-mode
%start Makefile
...
...
admin/grammars/python.wy
View file @
36a305a7
...
...
@@ -88,6 +88,12 @@
;; --------
%package wisent-python-wy
%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")
}
%languagemode python-mode
...
...
@@ -173,6 +179,7 @@
%token <punctuation> COMMA ","
%token <punctuation> ASSIGN "="
%token <punctuation> BACKQUOTE "`"
%token <punctuation> AT "@"
;; -----------------
...
...
@@ -307,6 +314,10 @@
%put WHILE summary
"Start a 'while' loop"
%keyword WITH "with"
%put WITH summary
"Start statement with an associated context object"
%keyword YIELD "yield"
%put YIELD summary
"Create a generator function"
...
...
@@ -545,8 +556,10 @@ import_stmt
;; dotted_as_name (',' dotted_as_name)*
dotted_as_name_list
: dotted_as_name
| dotted_as_name_list COMMA dotted_as_name
: dotted_as_name_list COMMA dotted_as_name
(cons $3 $1)
| dotted_as_name
(list $1)
;
;; ('*' | import_as_name (',' import_as_name)*)
...
...
@@ -649,6 +662,7 @@ compound_stmt
| while_stmt
| for_stmt
| try_stmt
| with_stmt
| funcdef
| class_declaration
;
...
...
@@ -755,14 +769,47 @@ zero_one_or_two_test
()
;
;;;============================================================================
;;@@ with_stmt
;;;============================================================================
;; with_stmt: 'with' test [ with_var ] ':' suite
with_stmt
: WITH test COLON suite
(CODE-TAG $1 nil)
| WITH test with_var COLON suite
(CODE-TAG $1 nil) ;; TODO capture variable
;
with_var
: AS expr
() ;; TODO capture
;
;;;============================================================================
;;;@@ funcdef
;;;============================================================================
;; funcdef: 'def' NAME parameters ':' suite
decorator
: AT dotted_name varargslist_opt NEWLINE
(FUNCTION-TAG $2 "decorator" $3)
;
decorators
: decorator
(list $1)
| decorator decorators
(cons $1 $2)
;
;; funcdef: [decorators] 'def' NAME parameters ':' suite
funcdef
: DEF NAME function_parameter_list COLON suite
(FUNCTION-TAG $2 nil $3)
(wisent-python-reconstitute-function-tag
(FUNCTION-TAG $2 nil $3) $5)
| decorators DEF NAME function_parameter_list COLON suite
(wisent-python-reconstitute-function-tag
(FUNCTION-TAG $3 nil $4 :decorators $1) $6)
;
function_parameter_list
...
...
@@ -798,10 +845,11 @@ function_parameter
;; classdef: 'class' NAME ['(' testlist ')'] ':' suite
class_declaration
: CLASS NAME paren_class_list_opt COLON suite
(TYPE-TAG $2 $1 ;; Name "class"
$5 ;; Members
(cons $3 nil) ;; (SUPERCLASSES . INTERFACES)
)
(wisent-python-reconstitute-class-tag
(TYPE-TAG $2 $1 ;; Name "class"
$5 ;; Members
(cons $3 nil) ;; (SUPERCLASSES . INTERFACES)
))
;
;; ['(' testlist ')']
...
...
admin/grammars/scheme.by
View file @
36a305a7
...
...
@@ -18,6 +18,7 @@
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
%package semantic-scm-by
%provide semantic/bovine/scm-by
%languagemode scheme-mode
%start scheme
...
...
admin/grammars/srecode-template.wy
View file @
36a305a7
...
...
@@ -28,6 +28,9 @@
;; Semantic Recoder templates are based on Google Templates
;; and are at the bottom of the Semantic Recoder API.
%package srecode-template-wy
%provide srecode/srt-wy
%languagemode srecode-mode
%start template_file
...
...
@@ -46,6 +49,15 @@
%put TEMPLATE summary "template <name>\\n <template definition>"
%keyword SECTIONDICTIONARY "sectiondictionary"
%put SECTIONDICTIONARY summary "sectiondictionary <name>\\n <dictionary entries>"
%keyword SECTION "section"
%put SECTION summary
"section <name>\\n <dictionary entries>\\n end"
%keyword END "end"
%put END summary
"section ... end"
%keyword PROMPT "prompt"
%keyword DEFAULT "default"
%keyword DEFAULTMACRO "defaultmacro"
...
...
@@ -62,7 +74,7 @@
%token <separator> TEMPLATE_BLOCK "^----"
;;; Bland default types
%type <property> ":\\(\\w\\|\\s_\\)*"
%type <property>
syntax
":\\(\\w\\|\\s_\\)*"
%token <property> property
%type <symbol>
...
...
@@ -134,7 +146,7 @@ insertable-string
template
: TEMPLATE templatename opt-dynamic-arguments newline
opt-string
opt-
section-dictionar
ies
section-dictionar
y-list
TEMPLATE_BLOCK newline
opt-bind
(FUNCTION-TAG $2 nil $3 :documentation $5 :code $7
...
...
@@ -165,29 +177,52 @@ opt-string
| ()
;
opt-section-dictionaries
: () ;; EMPTY
| section-dictionary-list
;
section-dictionary-list
: one-section-dictionary
(list $1)
| section-dictionary-list one-section-dictionary
: ;; empty
()
| section-dictionary-list flat-section-dictionary
(append $1 (list $2))
| section-dictionary-list section-dictionary
(append $1 (list $2))
;
one
-section-dictionary
flat
-section-dictionary
: SECTIONDICTIONARY string newline
variable-list
flat-dictionary-entry-list
(cons (read $2) $4)
;
flat-dictionary-entry-list
: ;; empty
()
| flat-dictionary-entry-list flat-dictionary-entry
(append $1 $2)
;
flat-dictionary-entry
: variable
(EXPANDTAG $1)
;
section-dictionary
: SECTION string newline
dictionary-entry-list
END newline
(cons (read $2) $4)
;