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