On Thursday 28 September 2006 02:36, Han-Wen Nienhuys wrote:
> Erik Sandberg schreef:
> > Hi,
> >
> > Here's a summary of my plans for the translator (I assume all of this
> > will happen after 2.10):
>
> there is one thing that still needs to be done, and preferably for 2.10:
> the internals documentation still uses the events-accepted field from
> the translator description, while it would be more accurate to dump the
> listeners to the internals doc.

The attached patch fixes this, and also eliminates the parser lookahead for 
0-ary functions.

make web is running now. May I commit if it succeeds?

-- 
Erik
? .cvs-checksum
? .cvsup-timestamp
? .sconf_temp
? build-stamp
? context-unique.diff
? def-rel-music-funciton.diff
? delay-music-functions.diff
? exjobb.diff3
? fonts
? foo-1.signature
? foo-systems.texi
? lib
? lilypond.kdevelop
? lilypond.kdevelop.pcs
? lilypond.kdevses
? optimized
? os
? ref1.diff
? ref2.diff
? repeat.diff
? scons.cache
? web-err
? web-out
? Documentation/out
? Documentation/out-www
? Documentation/bibliography/out
? Documentation/bibliography/out-www
? Documentation/misc/out
? Documentation/misc/out-www
? Documentation/pictures/out
? Documentation/pictures/out-www
? Documentation/topdocs/out
? Documentation/topdocs/out-www
? Documentation/user/out
? Documentation/user/out-www
? buildscripts/out
? buildscripts/out-www
? cygwin/out
? cygwin/out-www
? debian/out
? elisp/out
? elisp/out-www
? flower/out
? flower/out-scons
? flower/out-www
? flower/include/.sconsign
? flower/include/out
? flower/include/out-www
? input/Diagram1.dia.autosave
? input/les-nereides.pdf
? input/les-nereides.ps
? input/out
? input/out-www
? input/manual/out
? input/manual/out-www
? input/mutopia/out
? input/mutopia/out-www
? input/mutopia/E.Satie/out
? input/mutopia/E.Satie/out-www
? input/mutopia/F.Schubert/morgenlied.midi
? input/mutopia/F.Schubert/morgenlied.pdf
? input/mutopia/F.Schubert/morgenlied.ps
? input/mutopia/F.Schubert/out
? input/mutopia/F.Schubert/out-www
? input/mutopia/J.S.Bach/out
? input/mutopia/J.S.Bach/out-www
? input/mutopia/R.Schumann/out
? input/mutopia/R.Schumann/out-www
? input/mutopia/W.A.Mozart/mozart-hrn-3-1.midi
? input/mutopia/W.A.Mozart/mozart-hrn-3-2.midi
? input/mutopia/W.A.Mozart/mozart-hrn-3.midi
? input/mutopia/W.A.Mozart/mozart-hrn-3.pdf
? input/mutopia/W.A.Mozart/mozart-hrn-3.ps
? input/mutopia/W.A.Mozart/out
? input/mutopia/W.A.Mozart/out-www
? input/no-notation/out
? input/no-notation/out-www
? input/no-notation/to-xml.pdf
? input/no-notation/to-xml.ps
? input/regression/chord-tremolo.pdf
? input/regression/chord-tremolo.ps
? input/regression/out
? input/regression/out-www
? input/template/out
? input/test/new
? input/test/out
? input/test/out-www
? input/tutorial/out
? input/tutorial/out-www
? kpath-guile/out
? kpath-guile/out-scons
? lily/On
? lily/busy-playing-listener.cc
? lily/foo.pdf
? lily/foo.ps
? lily/lilypond
? lily/lilypond.gdt
? lily/lilypond.gpr
? lily/out
? lily/out-scons
? lily/out-www
? lily/include/.new.cf-string
? lily/include/.sconsign
? lily/include/busy-playing-listener.hh
? lily/include/out
? lily/include/out-www
? ly/out
? ly/out-www
? make/out
? make/out-www
? mf/feta-alphabet11.600pk
? mf/feta-alphabet13.600pk
? mf/feta-alphabet14.600pk
? mf/feta-alphabet16.600pk
? mf/feta-alphabet18.600pk
? mf/feta-alphabet20.600pk
? mf/feta-alphabet23.600pk
? mf/feta-alphabet26.600pk
? mf/feta-braces-a.600pk
? mf/feta-braces-b.600pk
? mf/feta-braces-c.600pk
? mf/feta-braces-d.600pk
? mf/feta-braces-e.600pk
? mf/feta-braces-f.600pk
? mf/feta-braces-g.600pk
? mf/feta-braces-h.600pk
? mf/feta-braces-i.600pk
? mf/feta11.600pk
? mf/feta13.600pk
? mf/feta14.600pk
? mf/feta16.600pk
? mf/feta18.600pk
? mf/feta20.600pk
? mf/feta23.600pk
? mf/feta26.600pk
? mf/out
? mf/out-scons
? mf/out-www
? mf/parmesan11.600pk
? mf/parmesan13.600pk
? mf/parmesan14.600pk
? mf/parmesan16.600pk
? mf/parmesan18.600pk
? mf/parmesan20.600pk
? mf/parmesan23.600pk
? mf/parmesan26.600pk
? po/out
? po/out-www
? ps/out
? ps/out-www
? python/convertrules.pyc
? python/fontextract.pyc
? python/lilylib.pyc
? python/out
? python/out-www
? scm/out
? scm/out-www
? scripts/lilypond-book-36.py
? scripts/lilypond-book.py.new
? scripts/out
? scripts/out-www
? scripts/stat
? stepmake/out
? stepmake/out-www
? stepmake/bin/out
? stepmake/bin/out-www
? stepmake/bin/packagepython.pyc
? stepmake/stepmake/out
? stepmake/stepmake/out-www
? tex/out
? tex/out-www
? ttftool/out
? ttftool/out-scons
? ttftool/include/.sconsign
? ttftool/include/out
? vim/out
? vim/out-www
Index: lily/lexer.ll
===================================================================
RCS file: /sources/lilypond/lilypond/lily/lexer.ll,v
retrieving revision 1.198
diff -u -r1.198 lexer.ll
--- lily/lexer.ll	22 Sep 2006 06:18:00 -0000	1.198
+++ lily/lexer.ll	1 Oct 2006 08:35:22 -0000
@@ -753,6 +753,7 @@
 		yylval.scm = get_music_function_transform (sid);
 
 		SCM s = scm_object_property (yylval.scm, ly_symbol2scm ("music-function-signature"));
+		push_extra_token (EXPECT_NO_MORE_ARGS);
 		for (; scm_is_pair (s); s = scm_cdr (s))
 		{
 			if (scm_car (s) == ly_music_p_proc)
Index: lily/parser.yy
===================================================================
RCS file: /sources/lilypond/lilypond/lily/parser.yy,v
retrieving revision 1.531
diff -u -r1.531 parser.yy
--- lily/parser.yy	23 Sep 2006 22:51:56 -0000	1.531
+++ lily/parser.yy	1 Oct 2006 08:35:26 -0000
@@ -260,6 +260,8 @@
 %token <i> EXPECT_MARKUP;
 %token <i> EXPECT_MUSIC;
 %token <i> EXPECT_SCM;
+/* After the last argument. */
+%token <i> EXPECT_NO_MORE_ARGS;
 
 %token <scm> BOOK_IDENTIFIER
 %token <scm> CHORDMODIFIER_PITCH
@@ -936,7 +938,7 @@
 	}
 	;
 
-function_arglist_nonmusic: /*empty*/ {
+function_arglist_nonmusic: EXPECT_NO_MORE_ARGS {
 		$$ = SCM_EOL;
 	}
 	| EXPECT_MARKUP function_arglist_nonmusic full_markup {
@@ -947,7 +949,9 @@
 	}
 	;
 
-function_arglist: /*empty*/ {
+function_arglist: EXPECT_NO_MORE_ARGS {
+		/* This is for 0-ary functions, so they don't need to
+		   read a lookahead token */
 		$$ = SCM_EOL;
 	}
 	| function_arglist_music_last
Index: lily/translator.cc
===================================================================
RCS file: /sources/lilypond/lilypond/lily/translator.cc,v
retrieving revision 1.108
diff -u -r1.108 translator.cc
--- lily/translator.cc	22 Sep 2006 07:51:37 -0000	1.108
+++ lily/translator.cc	1 Oct 2006 08:35:27 -0000
@@ -150,7 +150,6 @@
 add_listened_event_class (SCM sym)
 {
   ensure_listened_hash ();
-
   scm_hashq_set_x (listened_event_class_table, sym, SCM_BOOL_T);
 }
 
@@ -177,6 +176,7 @@
   SCM class_sym = scm_str2symbol (name.c_str ());
   
   add_listened_event_class (class_sym);
+
   r->event_class_ = class_sym;
   r->get_listener_ = get_listener;
   r->next_ = *listener_list;
@@ -184,6 +184,20 @@
 }
 
 /*
+  Used by ADD_THIS_TRANSLATOR to extract a list of event-class names
+  for each translator.  This list is used by the internals
+  documentation.
+*/
+SCM
+Translator::get_listened_class_list (const translator_listener_record *listeners) const
+{
+  SCM list = SCM_EOL;
+  for (; listeners; listeners = listeners->next_)
+    list = scm_cons (listeners->event_class_, list);
+  return list;
+}
+
+/*
   SMOBS
 */
 SCM
Index: lily/include/translator.hh
===================================================================
RCS file: /sources/lilypond/lilypond/lily/include/translator.hh,v
retrieving revision 1.106
diff -u -r1.106 translator.hh
--- lily/include/translator.hh	22 Sep 2006 07:51:37 -0000	1.106
+++ lily/include/translator.hh	1 Oct 2006 08:35:29 -0000
@@ -131,6 +131,7 @@
   void protect_event (SCM ev);
   virtual void derived_mark () const;
   static void add_translator_listener (translator_listener_record **listener_list, translator_listener_record *r, Listener (*get_listener) (void *), const char *ev_class);
+  SCM get_listened_class_list (const translator_listener_record *listeners) const;
 
   friend class Translator_group;
 };
Index: lily/include/translator.icc
===================================================================
RCS file: /sources/lilypond/lilypond/lily/include/translator.icc,v
retrieving revision 1.15
diff -u -r1.15 translator.icc
--- lily/include/translator.icc	2 Aug 2006 21:41:16 -0000	1.15
+++ lily/include/translator.icc	1 Oct 2006 08:35:29 -0000
@@ -60,7 +60,7 @@
 				   scm_makfrom0str (desc), static_properties); \
 									\
     static_properties = scm_acons (ly_symbol2scm ("events-accepted"),	\
-				   parse_symbol_list (accepted), static_properties); \
+				   get_listened_class_list (listener_list_), static_properties); \
 									\
     static_properties = scm_acons (ly_symbol2scm ("properties-read"),	\
 				   parse_symbol_list (read), static_properties); \
Index: scm/define-music-types.scm
===================================================================
RCS file: /sources/lilypond/lilypond/scm/define-music-types.scm,v
retrieving revision 1.95
diff -u -r1.95 define-music-types.scm
--- scm/define-music-types.scm	22 Sep 2006 07:51:37 -0000	1.95
+++ scm/define-music-types.scm	1 Oct 2006 08:35:31 -0000
@@ -149,13 +149,13 @@
 ... @var{note}\\rc (you can also use \\<, \\!, \\cresc, and
 \\endcresc.  See the user manual for details.).")
 
-	(types . (general-music dynamic-event crescendo-event event))
+	(types . (general-music span-event span-dynamic-event crescendo-event event))
 	)) 
     (DecrescendoEvent
      . (
 	(description .	"See @ref{CrescendoEvent}.")
 
-	(types . (general-music dynamic-event decrescendo-event event))
+	(types . (general-music span-event span-dynamic-event decrescendo-event event))
 	))
     
     (ExtenderEvent
@@ -605,13 +605,13 @@
     (SostenutoEvent
      . (
 	(description . "Depress or release sostenuto pedal. ")
-	(types . (general-music event pedal-event sostenuto-pedal-event))
+	(types . (general-music event pedal-event sostenuto-event))
 	))
     
     (UnaCordaEvent
      . (
 	(description . "Depress or release una-corda pedal.")
-	(types . (general-music event pedal-event una-corda-pedal-event))
+	(types . (general-music event pedal-event una-corda-event))
 	))
     
     (StringNumberEvent
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to