Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] org.eclipse.cdt.core.dom.parser.c

I found the problem. I deleted the first line, the include, I got 2 function names and 2 comments. So, one more question, I to resolve this one?
String[] includePaths = {"<stdio.h>"};// I know it should not be that 
IScannerInfo info = new ScannerInfo(definedSymbols, includePaths);
#include <stdio.h>
/*doc function1*/
int function1(int a){
 printf("This is function 1");
 return 0;
}
/*doc function2*/
int function2(char a){
printf("This is function 2");
return 0;
}

> From: glathe.helko@xxxxxxxxxxxxxx
> Date: Wed, 18 Aug 2010 13:35:13 +0200
> Subject: Re: [cdt-dev] org.eclipse.cdt.core.dom.parser.c
> To: cdt-dev@xxxxxxxxxxx
>
> And there are no warning, problem or error messages from the parser?
>
> E.g. is EXIT_SUCCESS a valid argument?
>
> Try the following: delete the main method + duplicate the method
> "function" and rename it to e.g. "function2", so that you have to
> methods and see if you get two declarations. If that works fine, your
> main method seems to be invalid.
>
> Sincerely,
>
> Helko Glathe
>
>
>
> 2010/8/18 Flo Menier <josieenfrance@xxxxxxxxxxx>:
> > when I tested the c code with only one function(int function(int toto){int
> > a;/*doc0*/
> >> > char b;/*doc1*/ return toto+a;}), I got doc0,doc1, with getComments().
> >> > with "for (IASTDeclaration declaration : translationUnit.getDeclarations()){
> > if( declaration instanceof IASTFunctionDefinition){
> > System.out.println(((IASTFunctionDefinition)
> > declaration).getDeclarator().getName());
> > }" I got "function", so the function name in console.
> > But when I tried a c file where I defined 2 functions. I got no function
> > name. I think there would be something wrong in the code.
> > my CFile.c
> > /*Documentation function1*/
> > int function1(char a){
> > printf("This is function1");
> > return 0;
> > }
> > /*Documentation function main*/
> > int main(void) {
> > puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
> > function1('1');
> > return EXIT_SUCCESS;
> > }
> >> From: glathe.helko@xxxxxxxxxxxxxx
> >> Date: Wed, 18 Aug 2010 12:44:12 +0200
> >> Subject: Re: [cdt-dev] org.eclipse.cdt.core.dom.parser.c
> >> To: cdt-dev@xxxxxxxxxxx
> >>
> >> Hi Andreas,
> >>
> >> but the c source code is not valid. Copy and paste it in the Eclipse
> >> CDT C Editor and you will see the error message.
> >>
> >> I think that the non deprecated code you are using is propably more
> >> tollerant against syntax errors.
> >>
> >> Kind regards from Berlin ,Helko
> >>
> >> Sincerely,
> >>
> >> Helko Glathe
> >>
> >>
> >>
> >> 2010/8/18 Andreas Graf <andreas.graf@xxxxxxxxx>:
> >> > Hmm,
> >> >
> >> > I tried the following code to avoid the deprecated interfaces and it
> >> > seems
> >> > to parse fine:
> >> >
> >> >  IParserLogService log = new DefaultLogService();
> >> >                  String codeString = "int function(int toto){int
> >> > a;/*doc0*/
> >> > char b;/*doc1*/ return toto+a; //*doc2*//}";
> >> >                  char[] code = codeString.toCharArray();
> >> >                  FileContent reader = FileContent.create("",code);
> >> >                  Map definedSymbols = new HashMap();
> >> >                  String[] includePaths = new String[0];
> >> >                  IScannerInfo info = new ScannerInfo(definedSymbols,
> >> > includePaths);
> >> >
> >> >                  try {
> >> >                     IASTTranslationUnit translationUnit
> >> > =GCCLanguage.getDefault().getASTTranslationUnit(reader, info, null,
> >> > null, 0,
> >> > log);
> >> >                     String x ="";
> >> >                     x="X";
> >> >                 } catch (CoreException e) {
> >> >                     // TODO Auto-generated catch block
> >> >                     e.printStackTrace();
> >> >                 }
> >> >
> >> > Am 18.08.2010 11:42, schrieb Helko Glathe:
> >> >
> >> > Hello Flo,
> >> >
> >> > I think that your C Source Code example is invalid.
> >> > The part "//*doc2*//" is not one block comment, but instead it is a
> >> > single line comment. The closing curly bracket "}" of your C function
> >> > ist also included in this single line comment, because your posted
> >> > code does not include any linebreaks. Thus, replace your "//" through
> >> > a single "/" to get a block comment and try your code again.
> >> >
> >> > Cheers, Helko
> >> >
> >> > Sincerely,
> >> >
> >> > Helko Glathe
> >> >
> >> >
> >> >
> >> > 2010/8/18 Flo Menier <josieenfrance@xxxxxxxxxxx>:
> >> >
> >> >
> >> > Thanks Helko. I tried to do what you said:
> >> > public static void main(String[] args) throws Exception {
> >> > IParserLogService log = new DefaultLogService();
> >> > String codeString = "int function(int toto){int a;/*doc0*/ char
> >> > b;/*doc1*/
> >> > return toto+a; //*doc2*//}";
> >> > char[] code = codeString.toCharArray();
> >> > CodeReader reader = new CodeReader(code);
> >> > Map definedSymbols = new HashMap();
> >> > String[] includePaths = new String[0];
> >> > IScannerInfo info = new ScannerInfo(definedSymbols, includePaths);
> >> > ICodeReaderFactory readerFactory = FileCodeReaderFactory.getInstance();
> >> > IASTTranslationUnit translationUnit
> >> > =GCCLanguage.getDefault().getASTTranslationUnit(reader, info,
> >> > readerFactory,
> >> > null, log);
> >> > for (IASTComment com :translationUnit.getComments()){
> >> > System.out.println(com.getComment().toString());
> >> > }
> >> > I got nothing printed in console. getComments() gave me a
> >> > IASTComment[10],
> >> > value is null for all 10 IASComment?
> >> >
> >> >
> >> > From: glathe.helko@xxxxxxxxxxxxxx
> >> > Date: Wed, 18 Aug 2010 00:41:38 +0200
> >> > Subject: Re: [cdt-dev] org.eclipse.cdt.core.dom.parser.c
> >> > To: cdt-dev@xxxxxxxxxxx
> >> >
> >> > Hello,
> >> >
> >> > have a look at the CVS repository:
> >> >
> >> > " 1. Connect to CVS repository:
> >> > :pserver:anonymous@xxxxxxxxxxxxxxx:2401/cvsroot/tools (Or
> >> > :pserver:anonymous@xxxxxxxxxxxxxxxxx:80/cvsroot/tools from behind
> >> > corporate firewall)
> >> > 2. Check out: org.eclipse.cdt/all "
> >> >
> >> > Underneath of "all" you will find the folder "org.eclipse.cdt.core".
> >> > Inside their is a subfolder for the "parser" where you can find the
> >> > source code.
> >> >
> >> >
> >> > But I think you can access Block Comments right know using the AST of
> >> > the C Source Code. The IASTTranslationUnit provides a method for
> >> > getting all comments (getComments()). This Method returns an Array of
> >> > IASTComment's. And IASTComment provides a to determine whether it is a
> >> > block comment or not (see IASTComment.isBlockComment()).
> >> >
> >> > Cheers, Helko
> >> >
> >> >
> >> >
> >> > Sincerely,
> >> >
> >> > Helko Glathe
> >> >
> >> >
> >> >
> >> > 2010/8/17 Flo Menier <josieenfrance@xxxxxxxxxxx>:
> >> >
> >> >
> >> > Can someone tell me where I can download the code source
> >> > of org.eclipse.cdt.core.dom.parser.c,
> >> > and org.eclipse.cdt.internal.core.parser.scanner? I want to understand
> >> > how
> >> > lexer works in CDT? I want to get block comments in a C source file
> >> > instead
> >> > of ignorer them.
> >> > Thanks a lot
> >> > _______________________________________________
> >> > 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
> >> >
> >> >
> >> > _______________________________________________
> >> > 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
> >> >
> >> >
> >> > --
> >> > Andreas Graf
> >> > BDM Automotive
> >> > Mobil: +49 (0) 151-10860479 (preferred)
> >> > Tel.: +49 (0) 7231 / 1 54 71-0
> >> > Fax.: +49 (0) 7231 / 1 54 71-29
> >> >
> >> >
> >> > Web: http://www.itemis.de
> >> > Mail: andreas.graf@xxxxxxxxx
> >> > Xing: http://www.xing.com/profile/Andreas_Graf
> >> > Twitter: http://www.twitter.com/grafandreas
> >> > Blog: http://5ise.quanxinquanyi.de
> >> >
> >> > itemis GmbH
> >> > Blücherstrasse 32
> >> > D-75177 Pforzheim
> >> > Rechtlicher Hinweis:
> >> > Amtsgericht Mannheim, HRB 50700996
> >> > Ust.Id.Nr.: DE250574762
> >> > Geschäftsführer: Sebastian Neus
> >> >
> >> > _______________________________________________
> >> > 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
> >
> > _______________________________________________
> > 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

Back to the top