lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parse scheme ast


From: Hlöðver Sigurðsson
Subject: Re: Parse scheme ast
Date: Thu, 20 Jul 2017 19:38:14 +0200

(sorry for spamming but I forgot to do "reply all" and post to the list itself)

An essay by Erik Sandberg had confused me (at closer look I was only confused not that the thesis was confusing),

the word I should be using is not ast but music streams. Reading an older thread: 
http://lilypond.1069038.n5.nabble.com/Has-anything-been-done-about-implementing-music-streams-td108258.html

and lack of documentation
http://lilypond.org/doc/v2.18/Documentation/extending/lilypond-scheme-interfaces

I assume this is going to be more low level than I can play with at my low skill-level. (until docs and interfaces for scheme are more cleared up).

thanks for your quick replies!

2017-07-20 17:33 GMT+02:00 David Kastrup <address@hidden>:
Hlöðver Sigurðsson <address@hidden> writes:

> Yes, that's why I wanted to experiment with boycutting the .ly->scheme-ast
> transformation step. I'm a much better lisper than c, so it's bit unclear
> to me what's going on (i've done parsers tough in the past). Are these
> public functions here maybe what I'm after
> https://github.com/lilypond/lilypond/blob/master/lily/include/lily-guile.hh#L52-L53
> because, only by (maybe false) assumption, the lilypond lexer and parser's
> job is to create the scheme ast in the pipeline that gets sent to another
> compilation step which job is to create raw typesetted output?

I repeat:

> 2017-07-20 16:57 GMT+02:00 David Kastrup <address@hidden>:
>>
>> LilyPond is an interpreter, not a compiler, so it doesn't work with
>> parse trees.  See lily/parser.yy for its parser (and associated actions)
>> and lily/lexer.ll for its lexer.

There is no "scheme ast".  LilyPond executes its actions as soon as it
recognizes a production.  Those actions ultimately assemble "book"
expressions which are then processed with functions/hooks like
toplevel-book-handler .

The basic control flow outside of the parser is done in ly/init.ly .

--
David Kastrup


reply via email to

[Prev in Thread] Current Thread [Next in Thread]