From: Michael N. <Mic...@ya...> - 2005-07-31 13:49:14
|
On Sunday 31 July 2005 11:18, Baptiste Lepilleur wrote: > The production prefixes are messing up with my mind. I don't really > understand them: > > [125] ns-l+block-node(n,c) ::= ns-l+block-in-block(n,c) | > ns-l+flow-in-block(n,c) > > ns-l+block-node: according to the production prefixes spec, 'ns-l' has the > following meaning: > > ns- > A production matching one or more characters starting and ending with *a > non-space* character. > > l- > A production matching one or more lines (shorthand for s-b-). > > And '-s-b': > > s- > A production matching one or more characters starting and ending with *a > space* character. > > b- > A production matching a single line break. > > My understanding is that it is not possible for a production to match both > 'ns-' and 's-' (and 'b-' implies ending with a space). > > What am I missing ? I think that 'l-' is not really a shorthand of 's-b-' (in this point specification seems to be wrong), as we have [69] l-comment ::= s-ignored-space* c-b-comment and l-comment can starting with a non-space character. I guess that 'l-' means that the production match sequence of characters, which ending with a line break. Also we have the following: ----------------------------- X-Y- A production matching a sequence of one or more characters, starting with an X- character and ending with a Y- character. X+, X-Y+ A production as above, with the additional property that the indentation level used is greater than the specified n parameter. ----------------------------- So 's-b' means characters starting with a space and ending with a line break character. 'ns-l+block-node' means sequence which starts with a non-space and ends with a line break character. Hope this helps. Michael Nedzelsky |