On Fri, Apr 16, 2010 at 4:59 PM, Sebastien Binet <[email protected]> wrote: > hi there, > > say I have a way to automatically generate a json structure > representing C++ classes, functions,... (the code to do so uses gccxml[0] > and Reflex[1]. once I migrated it to use the new gcc-4.5 plugin > architecture and/or clang, I'll release it under a BSD-like licence) > > this json structure looks like so for the moment (from cython C++ > test-case class): > > {'bases': [], > 'dso': 'libFoo.so', > 'members': [{'name': 'number', 'offset': 0L, 'size': 8, 'type': > 'double'}], > 'methods': [{'args': [], > 'doc': '', > 'name': '~DoubleKeeper', > 'prototype': 'void DoubleKeeper::~DoubleKeeper()', > 'return': 'void'}, > {'args': [{'default': None, > 'name': None, > 'type': 'const DoubleKeeper&'}], > 'doc': '', > 'name': 'operator=', > 'prototype': 'DoubleKeeper& DoubleKeeper::operator=(const > DoubleKeeper& )', > 'return': 'DoubleKeeper&'}, > {'args': [{'default': None, > 'name': None, > 'type': 'const DoubleKeeper&'}], > 'doc': '', > 'name': 'DoubleKeeper', > 'prototype': 'DoubleKeeper DoubleKeeper::DoubleKeeper(const > DoubleKeeper& )', > 'return': 'DoubleKeeper'}, > {'args': [{'default': None, > 'name': 'number', > 'type': 'double'}], > 'doc': '', > 'name': 'DoubleKeeper', > 'prototype': 'DoubleKeeper DoubleKeeper::DoubleKeeper(double > number)', > 'return': 'DoubleKeeper'}, > {'args': [{'default': None, > 'name': 'num', > 'type': 'double'}], > 'doc': '', > 'name': 'set_number', > 'prototype': 'void DoubleKeeper::set_number(double num)', > 'return': 'void'}, > {'args': [], > 'doc': '', > 'name': 'get_number', > 'prototype': 'double DoubleKeeper::get_number()', > 'return': 'double'}, > {'args': [{'default': None, > 'name': 'value', > 'type': 'double'}], > 'doc': '', > 'name': 'transmogrify', > 'prototype': 'double DoubleKeeper::transmogrify(double value)', > 'return': 'double'}], > 'name': 'DoubleKeeper', > 'size': 12, > 'typeinfo': '12DoubleKeeper'} > > which should be more or less self-describing. > > I am wondering if there is an API or a facility to write the > corresponding .pxd file ? > > cheers, > sebastien. > > [0]: http://www.gccxml.org/HTML/Index.html > [1]: http://root.cern.ch/drupal/content/reflex > -- > ######################################### > # Dr. Sebastien Binet > # Laboratoire de l'Accelerateur Lineaire > # Universite Paris-Sud XI > # Batiment 200 > # 91898 Orsay > ######################################### Hi,
I just found a project on GitHub which might do the thing you want: http://github.com/cournape/cython-codegen -- Haoyu BAI School of Computing, National University of Singapore. _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
