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>
*/
#include "parser.hh"
#include "score.hh"
#include "sources.hh"
-#include "text-metrics.hh"
#include "warn.hh"
#include "program-option.hh"
void
Lily_parser::parse_file (string init, string name, string out_name)
{
- if (get_output_backend_name () == "tex")
- try_load_text_metrics (out_name);
-
// TODO: use $parser
lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
output_basename_ = out_name;
return layout;
}
-/* Stack a paper on top of $papers */
+/* Initialize (reset) the $papers stack */
+void
+init_papers (Lily_parser *parser)
+{
+ parser->lexer_->set_identifier (ly_symbol2scm ("$papers"), SCM_EOL);
+}
+
+/* Push a paper on top of $papers stack */
void
-stack_paper (Lily_parser *parser, Output_def *paper)
+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)
{