X-Git-Url: https://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/7231d76fbf4ae0b501af648e1216b88714aa7353..bb6822c219eb531a497d0829626ac3b29af198fa:/src/generate_treefuncs.pl diff --git a/src/generate_treefuncs.pl b/src/generate_treefuncs.pl index 31d9151..ab47f3d 100755 --- a/src/generate_treefuncs.pl +++ b/src/generate_treefuncs.pl @@ -1,6 +1,8 @@ #!/usr/bin/perl -w -open (FILE, "treefuncs.def") || die ("Can't open treefuncs.def"); +my $srcfile = $ARGV[0] || "treefuncs.def"; + +open (FILE, "$srcfile") || die ("Can't open $srcfile"); open (OUTC, ">treefuncs.c") || die ("Can't open treefuncs.c"); open (OUTH, ">treefuncs.h") || die ("Can't open treefuncs.h"); @@ -9,7 +11,7 @@ print OUTC " * Do not edit by hand! */\n\n"; print OUTH "/* Generated by generate_treefuncs.pl from treefuncs.def!\n"; print OUTH " * Do not edit by hand! */\n\n"; -$typedefs = "typedef union _Node Node;\n"; +$typedefs = "typedef union Node Node;\n"; $typeenums = "enum {\n"; $typename = ""; @@ -124,9 +126,9 @@ while () { $typeenums .= "\t$uct"."_NODE,\n"; - $typedefs .= "typedef struct _$typename $typename;\n"; + $typedefs .= "typedef struct $typename $typename;\n"; - $typestruct{$typename} = "struct _$typename {\n\tNodeType type;\n"; + $typestruct{$typename} = "struct $typename {\n\tNodeType type;\n"; $copyfunc_prot{$typename} = "static $typename *\ncopy_$lct ($typename * self)"; $setfunc_prot{$typename} = "static void\nsetv_$lct ($typename * self, va_list __ap)"; $freefunc_prot{$typename} = "void\nfree_$lct ($typename * self)"; @@ -259,7 +261,7 @@ foreach $t (sort keys %typestruct) { print OUTH "$typestruct{$t}\n\n"; } -print OUTH "union _Node {\n\tNodeType type;\n"; +print OUTH "union Node {\n\tNodeType type;\n"; foreach $t (sort keys %typestruct) { $foo = lc $t; @@ -285,6 +287,7 @@ print OUTH "\n#endif /* TREEFUNCS_H */\n"; close (OUTH); +print OUTC "#include \n"; print OUTC "#include \n"; print OUTC "#include \n"; print OUTC "#include \"treefuncs.h\"\n\n";