Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] pulling in extern definitions with CDT parser

You need to refer to eclipse platform documentation. There are plugins
that depend on the UI and others that don't. The resources-plugin does
not depend on UI so you can use it without UI.

Whether an index is associated with an IASTTranslationUnit or not depends
on how you created it.
When the index for a project is empty, then there are no sources in the 
project or the indexer is turned off.

Markus.

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Peter Kim
> Sent: Tuesday, July 07, 2009 11:19 AM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] pulling in extern definitions with CDT parser
> Importance: Low
> 
> Wow, that is great.  Could you point me to an example of how 
> to do this?  For example, I ran into a situation where CDT 
> code would throw an exception unless an Eclipse plugin (it 
> was checking this against ResourcesPlugin class) was started. 
>  I would really appreciate it if you could demonstrate or 
> point me to an example of how a CDT project can be created 
> without having to start an Eclipse plugin, entirely from 
> command-line (without UI).
> 
> Also, even with Eclipse plugin running, I found that
> ITranslationUnit.getIndex() was returning null and although
> CCorePlugin.getIndexManager().getIndex(ICProject) was 
> returning an IIndex, it was basically empty.  What is the 
> correct way to retrieve IIndex?
> 
> Thank you very much.
> 
> On Tue, Jul 7, 2009 at 2:03 AM, Schorn,
> Markus<Markus.Schorn@xxxxxxxxxxxxx> wrote:
> > Peter,
> > The indexer works out of the box on top of a CDT-project. 
> All you need 
> > to achieve is to programmatically create a CDT project for 
> the code you are interested in and it will get indexed.
> >
> > You can run eclipse without UI and you do not need a UI to 
> have projects and translation units.
> >
> > Markus.
> >
> >
> >
> >> -----Original Message-----
> >> From: cdt-dev-bounces@xxxxxxxxxxx
> >> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Peter Kim
> >> Sent: Monday, July 06, 2009 7:28 PM
> >> To: CDT General developers list.
> >> Subject: Re: [cdt-dev] pulling in extern definitions with 
> CDT parser
> >> Importance: Low
> >>
> >> Hi Markus,
> >>
> >> Thank you for your help.  Do you think it will be possible 
> for me to 
> >> extract code from IIndex-related code so that the linking can work 
> >> without running Eclipse (i.e. without classes like IProject and 
> >> ITranslationUnit for which the editor needs to be started).  I'm 
> >> trying to create a standalone tool that can run from command-line 
> >> without running Eclipse.  Please let me know if this is worth the 
> >> effort or I should do the linking myself.
> >>
> >> Thank you.
> >>
> >>
> >> On Fri, Jul 3, 2009 at 1:23 AM, Schorn, 
> >> Markus<Markus.Schorn@xxxxxxxxxxxxx> wrote:
> >> > Peter,
> >> > while the parser corresponds to a compiler, the index
> >> corresponds to a
> >> > linker.
> >> > So definitions can be found via
> >> >   IIndex.findDefinitions(IBinding binding)
> >> >
> >> > Markus.
> >> >
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: cdt-dev-bounces@xxxxxxxxxxx
> >> >> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Peter Kim
> >> >> Sent: Thursday, July 02, 2009 6:59 PM
> >> >> To: cdt-dev@xxxxxxxxxxx
> >> >> Subject: [cdt-dev] pulling in extern definitions with CDT parser
> >> >> Importance: Low
> >> >>
> >> >> I am currently working on developing a simple source-to-source 
> >> >> transformation tool using CDT.  I've managed to pull the parser 
> >> >> component out of CDT as a standalone tool (so that we
> >> don't have to
> >> >> rely on Eclipse).  Namely, whereas before the AST had to
> >> be retrieved
> >> >> in the following way:
> >> >>
> >> >> ITranslationUnit tu = (ITranslationUnit)selected;
> >> IASTTranslationUnit
> >> >> ast = tu.getAST();
> >> >>
> >> >> Now, the AST is retrieved through a standalone parser, whose
> >> >> getAST() is a slightly modified, almost identical version, of
> >> >> ITranslationUnit.getAST():
> >> >>
> >> >> StandaloneCParser parser = new 
> StandaloneCParser("c:\\foo.c", tu); 
> >> >> IASTTranslationUnit astTu = parser.getAST();
> >> >>
> >> >> The parser is able to resolve bindings to definitions in
> >> header files
> >> >> (e.g. foo.h), but isn't able to do so for "extern" 
> declarations, 
> >> >> whose actual definitions are located in other .c files
> >> (e.g. bar.c).
> >> >> For example, if foo.c calls a method called 
> "barMethod()" that is 
> >> >> declared as "extern void barMethod();" in foo.h and
> >> actually defined
> >> >> in bar.c, calling IASTName.resolveBinding() on 
> "barMethod()" name 
> >> >> returns a CFunction whose CFunction.getDefinition() 
> returns null.
> >> >>
> >> >> Does CDT provide a mechanism for linking, so that these 
> external 
> >> >> definitions can be pulled in automatically?  If not, 
> what do you 
> >> >> recommend for connecting these various files together?  I
> >> know CDT is
> >> >> more of an IDE tool than a traditional parser/compiler, 
> but I've 
> >> >> found it very useful and I'd like to keep using it if possible.
> >> >>
> >> >>
> >> >> --
> >> >> Peter Kim
> >> >> Ph.D. Student
> >> >> Automated Software Design Group
> >> >> Department of Computer Sciences
> >> >> The University of Texas at Austin, USA
> >> >>
> >> >> http://www.cs.utexas.edu/~chpkim
> >> >> Phone: +1-512-461-9381
> >> >> Office: ACES 5.246
> >> >> _______________________________________________
> >> >> cdt-dev mailing list
> >> >> cdt-dev@xxxxxxxxxxx
> >> >> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >> >>
> >> > _______________________________________________
> >> > cdt-dev mailing list
> >> > cdt-dev@xxxxxxxxxxx
> >> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >> >
> >>
> >>
> >>
> >> --
> >> Peter Kim
> >> Ph.D. Student
> >> Automated Software Design Group
> >> Department of Computer Sciences
> >> The University of Texas at Austin, USA
> >>
> >> http://www.cs.utexas.edu/~chpkim
> >> Phone: +1-512-461-9381
> >> Office: ACES 5.246
> >> _______________________________________________
> >> cdt-dev mailing list
> >> cdt-dev@xxxxxxxxxxx
> >> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >>
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >
> 
> 
> 
> --
> Peter Kim
> Ph.D. Student
> Automated Software Design Group
> Department of Computer Sciences
> The University of Texas at Austin, USA
> 
> http://www.cs.utexas.edu/~chpkim
> Phone: +1-512-461-9381
> Office: ACES 5.246
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 


Back to the top