]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lily-parser.cc
Run `make grand-replace'.
[lilypond.git] / lily / lily-parser.cc
index 7e414916654ae9c3bc721637dc24b7bebeec0320..16af0c3cdf818135dc8686c97b362eed0a0e0fde 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -237,24 +237,32 @@ get_paper (Lily_parser *parser)
   return layout;
 }
 
-/* Stack a paper on top of $papers */
+/* Initialize (reset) the $papers stack */
 void
-stack_paper (Lily_parser *parser, Output_def *paper)
+init_papers (Lily_parser *parser)
+{
+  parser->lexer_->set_identifier (ly_symbol2scm ("$papers"), SCM_EOL);
+}
+
+/* Push a paper on top of $papers stack */
+void
+push_paper (Lily_parser *parser, Output_def *paper)
 {
   parser->lexer_->set_identifier (ly_symbol2scm ("$papers"),
                                   scm_cons (paper->self_scm (),
                                             parser->lexer_->lookup_identifier ("$papers")));
 }
 
-/* Unstack a paper from $papers */
+/* Pop a paper from $papers stack */
 void
-unstack_paper (Lily_parser *parser)
+pop_paper (Lily_parser *parser)
 {
-  parser->lexer_->set_identifier (ly_symbol2scm ("$papers"),
-                                  scm_cdr (parser->lexer_->lookup_identifier ("$papers")));
+  if (! scm_is_null (parser->lexer_->lookup_identifier ("$papers")))
+    parser->lexer_->set_identifier (ly_symbol2scm ("$papers"),
+                                    scm_cdr (parser->lexer_->lookup_identifier ("$papers")));
 }
 
-/* Change the paper on top of $papers */
+/* Change the paper on top of $papers stack */
 void
 set_paper (Lily_parser *parser, Output_def *paper)
 {