Bugs item #2984343, was opened at 2010-04-09 00:54
Message generated for change (Comment added) made by progmei
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=104664&aid=2984343&group_id=4664
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: C lexer/parser
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Paul Hughes (dwv7j5x690)
Assigned to: Hans-Bernhard Broeker (broeker)
Summary: c++ namespace key word not supported
Initial Comment:
If a class is declared inside a namespace then cscope cannot find the
declarations of those functions.
Also functions declared in anonymous namespace cscope does not index those
functions.
Suggested fix:
x@t60>cvs diff src/fscanner.l
Index: src/fscanner.l
===================================================================
RCS file: /cvsroot/cscope/cscope/src/fscanner.l,v
retrieving revision 1.15
diff -r1.15 fscanner.l
479c479
< class{wsnl}+{identifier}({wsnl}|{identifier}|[():])*\{ { /*
class definition */
---
> ("namespace"|"class"){wsnl}+{identifier}({wsnl}|{identifier}|[():])*\{
> { /* class definition */
487a488,497
> namespace{wsnl}+\{ { /* anonymous namespace */
> classdef = YES;
> tagdef = 'c';
> yyless(9); /* eat up 'namespace', and
> re-scan */
> yy_set_bol(0);
> goto more;
> /* NOTREACHED */
> }
>
>
A similar change would also be required in src/scanner.l for those who use lex.
I don't have a server with lex installed available to test.
----------------------------------------------------------------------
Comment By: progmei (progmei)
Date: 2012-11-14 05:28
Message:
As for the C++ is used more widely, but the C language seems no long
popular. Now most project in our product uses C++, and encourge us to use
the C++ and it's features, such as virtual function, namespace,template,
etc...
I don't think cscope not to completely support C++ is a good idea.
----------------------------------------------------------------------
Comment By: Hans-Bernhard Broeker (broeker)
Date: 2012-08-02 14:27
Message:
> There are 3 problems with cscope and c++
That's three you're aware of. Whereas I'm convinced that this is actually
a bottomless pit, which I refuse to jump into.
People are having a hell of a time getting modern full-featured C++ code to
parse with a lexer and generated parser, plus lots of tacked-on extra
gizmos. Expecting to do it with a lexer and just a little bit of state
machine on top, like cscope does it, is doomed to disappointment.
So, like I said before, we'll always fail at parsing C++ in some way that
somebody out there will find crucially limiting. And if we managed to
kinda-sorta parse it, we would be getting flack for the result lacking
enough scoping information (namespaces, template hierarchies, ...) as to be
virtually useless. E.g. a standard STL has members whose names a single one
of, "correctly" displayed, would fill our output window all by themselves.
This is a fight that cannot be won. So I won't go there.
----------------------------------------------------------------------
Comment By: Paul Hughes (dwv7j5x690)
Date: 2012-08-01 16:07
Message:
It is disappointing that you are so hostile to C++. Your project could
have many more users if you made some minor changes.
I even gave you exact code to fix the problem!
There are 3 problems with cscope and c++
namespaces
functions with namespace specifiers eg function(std::string &arg)
functions with template args eg function(vector<myclass> &arg)
All of which can be fixed with minor changes to fscanner.l and scanner.l
After that cscope works well on my very large (1,000,000+ lines) c and c++
project.
----------------------------------------------------------------------
Comment By: Jud P (judp)
Date: 2012-08-01 12:52
Message:
Bummer. Disappointing as I think this is the only issue holding back use in
my C++ project. Well thanks for the quick response at least!
----------------------------------------------------------------------
Comment By: Hans-Bernhard Broeker (broeker)
Date: 2012-08-01 11:36
Message:
For this to get fixed, it would have to be broken first. I don't consider
it to be. This is still cscope, not c++scope. cscope will _always_ fail
to parse C++ code in some way --- the syntax of that language is just way
too bizarre for that.
----------------------------------------------------------------------
Comment By: Jud P (judp)
Date: 2012-08-01 11:23
Message:
Any chance this will get fixed? I'd love to start using cscope, but I'm
running into this issue and it makes cscope fairly useless for my project.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=104664&aid=2984343&group_id=4664
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Cscope-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cscope-devel