This page is part of the web mail archives of SRFI 62 from before July 7th, 2015. The new archives for SRFI 62 contain all messages, not just those from before July 7th, 2015.
On Wed, 23 Mar 2005, Paul Schlie wrote: > > From: Taylor Campbell <campbell@xxxxxxxxxxxxxxxxxx> > > This is absolutely ludicrous and absurdly derogatory of how Lisp > > readers do and always have worked. ... > > - ok, how does a "lisp" reader parse a recursive lexically scoped comment > of the form specified by the grammar: > > <block-comment> -> #| <all-chars-excluding-#|-and-|#> |# > > Which by the way does specify an arbitrary recursive lexical scoped > comment which is delimited by #| ... |#, as the next sequentially > encountered #| is excluded from <all-chars-excluding-#|-and-|#>, which > then begins another embedded <block-comment>; or encounters a |#, which > terminates it. Just as a recursive list bounded by () may specified. I really have no idea what you're talking about here, and I don't see how you can call this 'recursive,' since your <block-comment> excludes the presence of the '#|' token entirely from its contents and certainly does not recursively refer back to <block-comment>. Block comments are furthermore still completely irrelevant to this SRFI. > <datum-comment> -> #; <datum> > > It seems fairly clear to me that #; should be properly interpreted as > beginning a <datum-comment> which either delimits an existing parse, or > is ignored as <white-space> searching for the next valid token. Where > since #; is not specified as beginning a <datum>, #; #; is invalid. This is the crux of your argument, and it is wrong. A <datum> is built by a stream of tokens. Any token may be preceded by intertoken space, which is ignored. Since you have specified that <datum-comment> is considered a comment, which in turn is considered intertoken space, a <datum>, which begins with a token, may always be preceded by that token's intertoken space, which may be a <datum-comment>. Therefore: --- intertoken space --- (datum comment with B (from '#; A B')) / datum \ / vvvvvvvvvvvvvvv #; #; A B C <-- datum (token C, preceded by ^^^^\ intertoken space '#; #; A B') | \ datum (token A) \ intertoken space (datum comment with A) The unlabelled datum (unlabelled because it would severely complicate the presentation of that already somewhat complicated construction) is B, from the text '#; A B', which is the identifier token 'B' preceded by intertoken space '#; A'. (This all assumes that the translations from character streams to token streams & token streams to data are interleaved, which I've already pointed out is a bad idea in the context of R5RS's existing BNF.) > (given that it seems I've both upset you, which was not my desire, > and am personally tired if this debate, as I'm sure you and others are; > I'll not attempt to pursue the matter any further to all our benefit). Then these shall be the last messages on the subject.