>
> the current tools should work for generating a mod_dav backend with 2.0
> i think we just need to add the dav_ prefix to Apache::ParseSource so
> mod_dav.h is parsed into the Apache::{Function,Structure}Table.
>
I tried this already. Addtionaly to add the dav_ prefix, I had to add the
mod_dav.h to the include files (because it's not in the include directory).
I parses the function correctly, but not the callbacks. As far as I seen,
you don't create the callbacks automaticly, is this right ?
The implementation of a mod_dav Perl backend will be about 50% callbacks
into Perl, so I like to generate them also automaticly.
> more work would be involved to get the current tools in shape to
> generate the client front end to neon.
>
My quick and dirty script does this at the moment for neon. It generates all
function call and callbacks (there is no handwritten code in HTTP::Webdav
:-). Now I like to bring these both together (at least parts of it, other
parts will stay divided, because my time is limited) and I like to create
also the mod_dav 1.x backend with these scripts.
I just will play a little bit around (together with Philippe) and we will
get back to you as soon as we have any results. I think we start to make a
base class for ModPerl/Apache::PasrseSource, which also is able to parser
typedefs, and give mode detailed information about callbacks (i.e. splitting
out the args of the callback function).
Gerald
P.S. To get uitl/source_scan.pl working I had to add a
use ModPerl::WarpXS ;
and the ModPerl::ParseSource->write_functions_pm dies. See the output from
the Perl debugger below. I currently use Perl 5.6.1.
main::(util/source_scan.pl:22): $p = ModPerl::ParseSource->new(@ARGV);
DB<1> n
main::(util/source_scan.pl:24): $p->parse;
DB<1> n
main::(util/source_scan.pl:26): $p->write_functions_pm;
DB<1> n
In file included from .apache_includes:4,
from :1:
xs/modperl_xs_sv_convert.h:288: warning:
p_xs_sv2_r' redefined
xs/modperl_xs_util.h:6: warning: this is the location of the previous
definition
In file included from .apache_includes:4,
from :1:
xs/modperl_xs_sv_convert.h:288: warning:
p_xs_sv2_r' redefined
xs/modperl_xs_util.h:6: warning: this is the location of the previous
definition
panic: multiple types without intervening comma in
regexp*( *regcomp_t ) (register PerlInterpreter *my_perl , char*
exp, char* xend, PMOP* pm)
whited-out as
regexp*( *regcomp_t )
( )
Expecting parenth after identifier in egcomp_t *
Perl_Tregcompp_ptr(register PerlInterpreter *my_perl )'
after egcomp_t ' at /opt/perlt5.6.1/lib/site_perl/5.6.1/C/Scan.pm line
783.
C::Scan::do_declaration('extern ^Iregcomp_t *
Perl_Tregcompp_ptr(register PerlInterpre...', 'HASH(0x881669c)',
'HASH(0x8815620)') called at /opt/perlt5.6.1/lib/site_perl/5.6.1/C/Scan.pm
line 738
C::Scan::do_declarations('ARRAY(0x87f113c)', 'HASH(0x881669c)',
'HASH(0x8815620)') called at
/opt/perlt5.6.1/lib/site_perl/5.6.1/Data/Flow.pm line 69
Data::Flow::request('Apache::ParseSource::Scan=ARRAY(0x87f0cec)',
'parsed_fdecls') called at /opt/perlt5.6.1/lib/site_perl/5.6.1/Data/Flow.pm
line 39
Data::Flow::get('Apache::ParseSource::Scan=ARRAY(0x87f0cec)',
'parsed_fdecls') called at lib/Apache/ParseSource.pm line 49
Apache::ParseSource::Scan::get('Apache::ParseSource::Scan=ARRAY(0x87f0cec)',
'parsed_fdecls') called at lib/Apache/ParseSource.pm line 290
Apache::ParseSource::get_functions('ModPerl::ParseSource=HASH(0x8a9de1c)')
called at lib/Apache/ParseSource.pm line 368
Apache::ParseSource::write_functions_pm('ModPerl::ParseSource=HASH(0x8a9de1c
)', 'FunctionTable.pm', 'ModPerl::FunctionTable') called at
lib/ModPerl/ParseSource.pm line 40
ModPerl::ParseSource::write_functions_pm('ModPerl::ParseSource=HASH(0x8a9de1
c)') called at util/source_scan.pl line 26Debugged program terminated. Use
q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting
Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: [EMAIL PROTECTED] Voice: +49 6133 925131
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]