Am Montag, 6. März 2006 16:52 schrieb Malcolm Wallace: > Daniel Fischer <[EMAIL PROTECTED]> wrote: > > > At the beginning of the module, there is _no_ current indentation > > > level - thus the fourth equation of L applies. > > > > I think, the third from last equation of L applies, since > > "If the first lexeme of a module is _not_ { or module, then it is > > preceded by {n} where n is the indentation of the lexeme.", so we > > start L with L ('module':ts) []. > > Indeed, and thus, when we get to the end of the first 'where' token, the > stack of indentation contexts is still empty. Hence my remark about the > fourth equation. > Aha, I read 'At the beginning of the module' as 'at the very beginning', whereas you meant 'At the beginning, after the module-where', sorry to have misunderstood.
> > body -> { impdecls; topdecls } > > > > | { impdecls } > > | { topdecls } > > > > The first line seems to suggest that import declaraions were > > admissible also after topdecls, but any attempt to place an impdecl > > after a topdecl leads --fortunately-- to a parse error in hugs and > > ghc, shouldn't the production be > > > > body -> { impdecls }; { topdecls } ? > > I think you have mis-read the brace characters as if they were the EBNF > meta symbols for repetition. They do in fact mean the literal brace > symbol, which may be explicitly present in the source, or inserted by > the layout rule. Thus, topdecls must follow impdecls, and be at the > same indentation level if layout matters. Ah, damn, fonts are too similar in my browser. And since I've never used explicit braces at the top level, I didn't expect literal brace-characters there. > > Regards, > Malcolm Thanks, Daniel -- "In My Egotistical Opinion, most people's C programs should be indented six feet downward and covered with dirt." -- Blair P. Houghton _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe