2018-02-04 0:08 GMT+01:00 David Kastrup <d...@gnu.org>: > David Kastrup <d...@gnu.org> writes: > >> Thomas Morley <thomasmorle...@gmail.com> writes: >> >>> 2018-02-03 23:21 GMT+01:00 David Kastrup <d...@gnu.org>: >>> >>>> >>>> Ok, then it's the primitive-eval crapping out. parser.yy has >>>> >>>> | markup_mode_word '=' identifier_init >>>> { >>>> if (scm_is_false (Lily::markup_function_p ($3))) >>>> { >>>> parser->parser_error (@3, _ ("Not a markup >>>> function")); >>>> } else { >>>> scm_primitive_eval >>>> (scm_list_3 >>>> (Lily::define_markup_command, >>>> scm_string_to_symbol ($1), >>>> ly_quote_scm ($3))); >>>> } >>>> $$ = SCM_UNSPECIFIED; >>>> } >>>> ; >>>> >>>> So basically >>> >>> Compiling a file with nothing else then: >>> >>>> #(primitive-eval (list define-markup-command 'bold-red >>>> #{ \markup \bold \with-color #red \etc #})) >>> >>> returns: >>> >>> error: GUILE signaled an error for the expression beginning here >>> # >>> (primitive-eval (list define-markup-command 'bold-red >>> source expression failed to match any pattern >>> fatal error: failed files: "atest-70.ly" >> >> Ugh. Ok, I think I got this. I'll split define-markup-command into a >> macro just calling an internal function, and I'll use the internal >> function inside of the parser. Calling macros from C++ seems to be a >> bad idea. > > Huh. Not so simple: there are a few define-public called with > constructed names. I'll have to see what kind of non-syntax equivalents > are available for those. Will take a few days because I have to do > something else tomorrow urgently.
Take you're time, this one isn't urgent. At least not for yet, imho. Thanks, Harm _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel