[Pharo-project] Initial PetitC parser

Alexandre Bergel alexandre.bergel at me.com
Fri Apr 8 23:17:24 CEST 2011


> Can't macros and preprocessor directives be represented as just another nodes in the AST?

In some cases yes, in some other no. The preprocessor allows you to completely change the syntax of C. This makes it very hard to parse. Consider the following valid C program:

#define LEFTPARENT (
#define RIGHTPARENT )

int main LEFTPARENT void RIGHTPARENT {
  return 0;
}


Cheers,
Alexandre


> 
> 
> On 7 Apr 2011, at 23:53, Javier Pimás wrote:
> 
> > by the way, the grammar is based on
> >
> > http://www.quut.com/c/ANSI-C-grammar-l-1998.html
> >
> > and
> >
> > http://www.quut.com/c/ANSI-C-grammar-y.html
> >
> > I'd be very grateful if you contribute to cover the full extent of it!
> >
> >
> > On Fri, Apr 8, 2011 at 12:37 AM, Javier Pimás <elpochodelagente at gmail.com> wrote:
> > Hi,
> >      I took some time to start developing a C parser with PetitParser. I used the slides of the smalltalk school, they were pretty useful, and after some hours I have a very basic tokens scanner. The idea of this work is to be able to feed the parser with C headers and automagically get the C bindings done in smalltalk.
> >
> > Now I have to actually start doing something with the scanned code. How should I do that, all in the same class? What if I want to generate bindings for different kinds of FFIs? Other question, how should I handle preprocessing? (now there isn't any kind of preprocessing)
> >
> > You can see the code, download it and commit improvements to the repo at www.squeaksource.com/Bindings
> >
> > Anybody who is interested is welcomed to help in the development!
> >
> > Regards,
> >           Javier.
> >
> > --
> > Javier Pimás
> > Ciudad de Buenos Aires
> >
> >
> >
> > --
> > Javier Pimás
> > Ciudad de Buenos Aires
> 
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> Javier Pimás
> Ciudad de Buenos Aires
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.








More information about the Pharo-project mailing list