}
LY_DEFINE (ly_parser_print_book, "ly:book-process",
- 3, 0, 0, (SCM book_smob,
+ 4, 0, 0, (SCM book_smob,
SCM default_paper,
SCM default_layout,
SCM basename),
Duration default_duration_;
String output_basename_;
- int score_count_;
- int book_count_;
-
int fatal_error_;
int error_level_;
bool ignore_version_b_;
Lily_parser::Lily_parser (Sources *sources)
{
- book_count_ = 0;
- score_count_ = 0;
lexer_ = 0;
sources_ = sources;
default_duration_ = Duration (2, 0);
Lily_parser::Lily_parser (Lily_parser const &src)
{
- book_count_ = src.book_count_;
- score_count_ = src.score_count_;
lexer_ = 0;
sources_ = src.sources_;
default_duration_ = src.default_duration_;
}
LY_DEFINE (ly_score_process, "ly:score-process",
- 2, 0, 0,
+ 5, 0, 0,
(SCM score_smob,
SCM default_header,
SCM default_paper,
SCM default_layout,
SCM basename),
- "Print score, i.e., the classic way.")
+ "Print score without page-layout: just print the systems.")
{
Score *score = unsmob_score (score_smob);
SCM_ASSERT_TYPE (score, score_smob, SCM_ARG1, __FUNCTION__, "score");
- SCM_ASSERT_TYPE (ly_is_module (default_header),
- default_header, SCM_ARG2, __FUNCTION__, "module");
+ // allow header to be undefined.
SCM_ASSERT_TYPE (unsmob_output_def (default_paper),
default_header, SCM_ARG3, __FUNCTION__, "\\paper block");
SCM_ASSERT_TYPE (unsmob_output_def (default_layout),
#(ly:set-option 'old-relative #f)
#(define toplevel-scores '())
+#(define output-count 0)
#(define $globalheader #f)
#(define version-seen? #f)
(ly:parser-print-score parser book)))
(define-public (collect-scores-for-book parser score)
- (ly:parser-define
+ (ly:parser-define!
parser 'toplevel-scores
(cons score (ly:parser-lookup parser 'toplevel-scores))))
(let*
((paper (ly:parser-lookup parser '$defaultpaper))
(layout (ly:parser-lookup parser '$defaultlayout))
- (count (ly:parser-lookup parser 'book-count))
+ (count (ly:parser-lookup parser 'output-count))
(base (ly:parser-output-name parser)))
(if (not (integer? count))
(if (> count 0)
(set! (base (format #f "~a-~a" count))))
- (ly:parser-define! book-count (1+ count))
+ (ly:parser-define! parser 'output-count (1+ count))
(ly:book-process book paper layout base)
(let*
((paper (ly:parser-lookup parser '$defaultpaper))
(layout (ly:parser-lookup parser '$defaultlayout))
- (layout (ly:parser-lookup parser '$globalheader))
- (count (ly:parser-lookup parser 'book-count))i
+ (header (ly:parser-lookup parser '$globalheader))
+ (count (ly:parser-lookup parser 'output-count))
(base (ly:parser-output-name parser)))
(if (not (integer? count))
(if (> count 0)
(set! (base (format #f "~a-~a" count))))
- (ly:parser-define! book-count (1+ count))
+ (ly:parser-define! parser 'output-count (1+ count))
(ly:score-process score header paper layout base)
(result
`(let ((parser-clone (ly:clone-parser parser)))
,@(map (lambda (binding)
- `(ly:parser-define parser-clone ',(car binding) ,(cdr binding)))
+ `(ly:parser-define! parser-clone ',(car binding) ,(cdr binding)))
(reverse bindings))
(ly:parse-string-result ,lily-string parser-clone))
))