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

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
>
>


Back to the top