- while (1)
- {
- if (!gh_pair_p (expr))
- return;
-
- SCM head =ly_car (expr);
- if (unsmob_input (head))
- {
- Input * ip = unsmob_input (head);
-
- output_scheme (scm_list_n (ly_symbol2scm ("define-origin"),
- scm_makfrom0str (ip->file_string ().to_str0 ()),
- gh_int2scm (ip->line_number ()),
- gh_int2scm (ip->column_number ()),
- SCM_UNDEFINED));
- expr = ly_cadr (expr);
- }
- else if (head == ly_symbol2scm ("no-origin"))
- {
- output_scheme (scm_list_n (head, SCM_UNDEFINED));
- expr = ly_cadr (expr);
- }
- else if (head == ly_symbol2scm ("translate-stencil"))
- {
- o += ly_scm2offset (ly_cadr (expr));
- expr = ly_caddr (expr);
- }
- else if (head == ly_symbol2scm ("combine-stencil"))
- {
- output_expr (ly_cadr (expr), o);
- expr = ly_caddr (expr);
- }
- else
- {
- output_scheme (scm_list_n (ly_symbol2scm ("placebox"),
- gh_double2scm (o[X_AXIS]),
- gh_double2scm (o[Y_AXIS]),
- expr,
- SCM_UNDEFINED));
- return;
- }
- }
+ interpret_stencil_expression (stil.expr (), paper_outputter_dump,
+ (void*) this, Offset (0,0));