Re: How to determine if a given line is a C/C++ comment

Tom Copeland <tom@infoether.com>
10 Aug 2006 15:43:38 -0400

          From comp.compilers

Related articles
How to determine if a given line is a C/C++ comment chtaylo3@gmail.com (2006-08-09)
Re: How to determine if a given line is a C/C++ comment tom@infoether.com (Tom Copeland) (2006-08-10)
Re: How to determine if a given line is a C/C++ comment haberg@math.su.se (2006-08-10)
Re: How to determine if a given line is a C/C++ comment nicola.musatti@gmail.com (Nicola Musatti) (2006-08-10)
Re: How to determine if a given line is a C/C++ comment johnmillaway@yahoo.com (John Millaway) (2006-08-10)
Re: How to determine if a given line is a C/C++ comment mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2006-08-12)
Re: How to determine if a given line is a C/C++ comment listas@nicolasb.com.ar (Nico) (2006-08-12)
Re: How to determine if a given line is a C/C++ comment gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-08-14)
[2 later articles]
| List of all articles for this month |
From: Tom Copeland <tom@infoether.com>
Newsgroups: comp.compilers
Date: 10 Aug 2006 15:43:38 -0400
Organization: Compilers Central
References: 06-08-042
Keywords: C, lex
Posted-Date: 10 Aug 2006 15:43:38 EDT

On Wed, 2006-08-09 at 00:03 -0400, chtaylo3@gmail.com wrote:
> obviously it is pretty straight forward to determine if a line uses the
> // style comment syntax, what's more difficult is determining if a
> given line is a pure comment inside a /* */ block.
>
> Any assistance would be appreciated.
>
> Respectfully,
> Christopher
> [You need about 2/3 of a C++ lexer. You more or less need to
> scan for /* and then the matching */, except that you also need
> to look for quoted strings since "/*" is a string, not a comment.
> It's not that hard, with a lexer generator like flex you should
> be able to do it in a few hours. But people must have done this
> a hundred times before so I would first poke around on the net and
> see if there is code you can just steal. -John]


If you're working in Java there's a fairly complete JavaCC grammar for
C++ here:


http://pmd.cvs.sourceforge.net/pmd/pmd/etc/grammar/cpp.jj?revision=1.15&view=markup


It uses lexical states to skip the comments, but you can modify those
to save the comments, record line numbers, or do whatever else you
need...


Yours,


tom


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.