[antlr-interest] handling /// comments
ajk .
anders43 at gmail.com
Sun Sep 21 18:13:54 PDT 2008
Yes unfortunately it is v2, our parser is quite large and translating it to
v3 with all the ad hoc functionality would be a major undertaking.
BR/Anders.
On Sun, Sep 21, 2008 at 6:56 PM, Johannes Luber <jaluber at gmx.de> wrote:
> ajk . schrieb:
> >
> >
> > On Fri, Sep 19, 2008 at 10:47 PM, Johannes Luber <jaluber at gmx.de
> > <mailto:jaluber at gmx.de>> wrote:
> >
> > ajk . schrieb:
> > > Hi
> > >
> > > I was wondering if somebody has an idea how to solve the following
> > > problem. Lets see if I can describe the issue in a proper way.
> > >
> > > We have a translator that translates a scripting language to C#.
> > >
> > > We now need to support ///<summary>.. in C#
> > >
> > > By adding the /// in the scripting language we were hoping just to
> > move
> > > this over to C#:
> > >
> > > example
> > >
> > > /// <summary>
> > > /// some function
> > > /// </summary>
> > > myfunction returns int
> > > begin
> > > bla();
> > > end
> > >
> > > ->
> > >
> > > C#
> > > /// <summary>
> > > /// some function
> > > /// </summary>
> > > int myfunction()
> > > {
> > > bla();
> > > }
> > >
> > > So far so good, I would associate the comments to the following
> > function
> > > which is a node in the AST, simple to do a parser rule for this.
> > >
> > > But in C# (as well as the scripting language) you can write
> comments
> > > anywhere in the code in whatever form you want e.g.
> > >
> > > /// hello
> > >
> > > or
> > >
> > > ///////////////////////////////////////////
> > > //// this freestanding comment
> > > ////////////////////////////////////////////
> > >
> > > How do you filter away these things? How do I write a parser rule
> that
> > > allows comments anywhere in the original code but only move the
> > relevant
> > > ones? i.e. the ones associated with certain elements like
> functions,
> > > variable declarations etc.
> > >
> > > TIA
> > > Anders.
> >
> > There are two possible ways to solve this issue. The first is to add
> > COMMENT nodes everywhere they may appear. But this reduces the
> > readability a lot. The other way is to put off the COMMENT tokens
> > off-channel and to scan in front of matched function definitions for
> a
> > COMMENT token yourself.
> >
> > Johannes
> >
> >
> >
> > The latter method sounds better, our language is very large so the less
> > changes to the grammar the better. In v2 (which I am not familiar with)
> > how to set tokens to come into the hidden channel? In v3 you just write
> > $Channel=HIDDEN right?
>
> Are you using v2? I haven't used it myself, too, so I can't help you
> there. In v3 one uses "{$channel=HIDDEN;}", but theoretically one can
> use other values, which is useful to distinguish between comments and
> other whitespace.
>
> Johannes
> >
> > thanks
> > Anders.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080922/00d21f2a/attachment.html
More information about the antlr-interest
mailing list