Francois Gouget wrote:
>  - wrc does not handle '#pragma', '#line' and '#error' when in
> parenthesis, or scanning for a semi-colon/in curly brackets. This does
> not seem logical. The following is valid:
> 
>         int zero(int a,
>         #line 123
>             int b,
>         #pragma whatever
>             int c);
> 
>         Thus the following modifications (mostly to the lexer):

Indeed. The problem is that wrc has a semantical preprocessor instead of
a lexical preprocessor. There are quite a few other constructs that also
fail in wrc. I have been working on a new preprocessor for the past two
months (and it is working), but it is not yet completely done. Main
problem is that I need to rewrite the macro-expansion code for nested
macros (to prevent functional recursion) and definitely speed it up
because it takes 3.5 seconds to compile some files (oh well, it does
20000 lines per second though; almost as fast as gcc:-). My coming
changes also correct the other 2 major issues: filenames and usertype
resources.

Greetings Bertho

Reply via email to