Hello ,
I'm trying to to write simple ANSI C preprocessor but I have problem with
recursive call. When I call my function : preproc(filename) , I get message
" Segmentation fault Core Dumped : " .
Please Help
Pawe epko
Hire Is My Code :
#!/usr/bin/nawk -f
#Autor : Pawe epko
# Simple Preprocesor
BEGIN {
print "//preprocessing ... ";
print " ";
for(i=1;i<ARGC;i++)
{
filename = ARGV
preproc(filename);
}
}
END{
}
## MY FUNCTION
function preproc(filename)
{
# file preprocessing :
while ( getline < filename )
{
name=""
include_true="F"
if ( NF >= 3 && $1=="#define" )
{
for(i=3;i<=NF;i++)
name = name "" $i; # we need this for macro
for ( def in define )
gsub(def,define[def], name ) ; # in name we search for names defined before by define drictive
define[$2] = name ;
name=""
}
else if ( NF==2 && $1=="#include" )
{
for ( def in define )
{
if ( $2==def) # # check if $2 was defined by #define dericticve
{
plik = define[def];
preproc(plik); # <--Recursive call - we have to preproc and include files defined by #include
inc_true="T";
}
}
if ( inc_true != "T" )
{
preproc($2); # the same as abowe
print " "
}
else
inc_true="F"
}
else
{
# preprocessing ... not finished yet
}
}
return ;
}