[antlr-interest] Parsing comments
Jim Idle
jimi at temporal-wave.com
Thu Sep 17 08:31:28 PDT 2009
fragment WRAPPER : ;
COMMENT : '//' SPACE*
( ('@')=> '@' (~WSCHARS)* { $type = WRAPPER; }
| ' (~WSCHARS)*
)
;
Always left factor and change the token type dynamically.
Jim
On Sep 17, 2009, at 7:55 AM, Soren Holstebroe <holstebroe at gmail.com>
wrote:
> Hi,
>
> I have this project where C++ templates are being unfolded and
> wrapped in .NET. This wrapping is performed by some perl-scripts
> which over time have become quite messy, so I wanted to rewrite the
> wrapper using ANTLR.
>
> The way the current template wrapper works is by parsing simple
> template expressions defined in the comments preceding a function
> definition. This is similar to documentation frameworks like
> doxygen, where the documentation is embedded in the comments above
> functions, classes, etc.
> The simple syntax contains elements like this:
> // @TEMPLATE <int, float>
> which tells the wrapper to unfold the template using an int for the
> first template type and a float for the second.
>
> My problem is that I am already stuck in defining the lexer.
> Since all wrapper expressions start with '@' I tried to define a
> token like:
> WRAPPERSTART : SLASHSLASH SPACE* '@'
> and some grammar rules based on that token.
> However that doesn't work since the lexer will always choose the
> longest matching rule, which would always be the normal single line
> comment rule.
>
> I can imagine that there are many approaches to tackle this problem
> and some hints would be greatly appreciated.
>
> Soren
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
More information about the antlr-interest
mailing list