Dangling if
Aziz K.
aziz.koeksal at gmail.com
Mon Oct 1 04:31:06 PDT 2012
On Fri, 28 Sep 2012 06:03:41 +0200, Bernard Helyer <b.helyer at gmail.com>
wrote:
> By the time the compiler even has a concept of an 'if statement'
> or a 'block' the whitespace is long gone. Not to say you
> couldn't change the lexing model to detect such things,
> but it's not a simple as you make it sound.
>
Not so with my compiler implementation. It would be trivial to add such a
check to the Parser. A newline is its own (whitespace) Token, so it would
simply require looking for two consecutive newline tokens, in order to
give an error or a warning for that case. However, including such special
checks would quickly bloat the Parser code and make it difficult to read.
A better solution would be a class which traverses the parse tree and
implements the checks in its methods. Another more complex way to do this
is to design a querying language (similar to XPath) which returns a set of
Nodes according to a query string, on which you can perform arbitrary
checks.
--
My D Compiler: http://code.google.com/p/dil
More information about the Digitalmars-d
mailing list