Author: tewk
Date: Tue Dec 2 14:38:46 2008
New Revision: 33449
Added:
trunk/compilers/ncigen/compreg.pir
trunk/compilers/ncigen/sqlite_interface_generator.pl (contents, props changed)
Log:
[ncigen] perl6 start to autogenerating interfaces
Added: trunk/compilers/ncigen/compreg.pir
==============================================================================
--- (empty file)
+++ trunk/compilers/ncigen/compreg.pir Tue Dec 2 14:38:46 2008
@@ -0,0 +1,2 @@
+Index: compilers/ncigen/compreg.pir
+===================================================================
Added: trunk/compilers/ncigen/sqlite_interface_generator.pl
==============================================================================
--- (empty file)
+++ trunk/compilers/ncigen/sqlite_interface_generator.pl Tue Dec 2 14:38:46 2008
@@ -0,0 +1,24 @@
+#!/home/tewk/srcs/parrot/perl6
+use v6;
+evalfile('./ncigen.pbc', lang => 'Parrot');
+evalfile('./compreg.pir', lang => 'Parrot');
+
+my $fn = @*ARGS[0];
+my $pp_fn = mktempfile('ptemp');
+
+run("gcc -x c -E $fn > $pp_fn");
+my $compiler = compreg('NCIGEN');
+my $ast = $compiler.parse(slurp($pp_fn));
+say +$ast;
+for $ast.item() -> $x {
+ say "====================================================";
+ say $x;
+}
+
+
+
+sub mktempfile($prefix) {
+ sub nonce() { ".{$*PID}." ~ int 1000.rand }
+ $prefix ~ nonce;
+}
+