On Thu, Feb 26, 2009 at 8:01 PM, Sam Mason <[email protected]> wrote: > Yes, I came to the same conclusion but from the point of view of what > constraints would I need to apply to do it only in the lexer. Nicely > it matched what Geoffrey described. I'd maintain some brace depth and > ignore new lines when inside at least one brace. A block open/close is > returned when the indent depth increases/decreases respectively. A bit > grim, but seems like a simple enough hack. Python gives the appropriate > errors when I fail to follow these rules which is somewhat nice.
Something like that. It's not quite enough if blocks are expressions. In effect, you have several types of lexically nested braces, and you need to keep track of the innermost active brace type in the current lexical context. So there is a devil in the details, but yes, something like this ought to work. And then the trick would be to have the lexer synthetically emit OPEN/CLOSE tokens to the parser at the right points. Makes me want to go sacrifice my dinner on the porcelain alter, but doable. shap _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
