RosettaCodeData/Task/General-FizzBuzz/AWK/general-fizzbuzz-2.awk

34 lines
799 B
Awk

# usage: awk -f fizzbuzzGen.awk > fizzbuzzCustom.awk
#
function Print(s) {
print s > "/dev/stderr"
}
BEGIN { Print( "# FizzBuzz-Generate:" )
q2 = "\""
fN = "numbers.txt"
#fP = "fizzbuzzCustom.awk"
}
NF==1 { Print( "# " $1 " Numbers:" )
for( i=1; i <= $1; i++ )
print( i ) > fN # (!!) write to file not allowed in sandbox at ideone.com
Print( "# Custom program:" )
print "BEGIN {print " q2 "# CustomFizzBuzz:" q2 "} \n"
next
}
NF==2 { Print( "# " $1 "-->" $2 ) ##
print "$1 % "$1" == 0 {x = x "q2 $2 q2 "}"
next
}
END { print ""
print "!x {print $1; next}"
print " {print " q2 " " q2 ", x; x=" q2 q2 "} \n"
print "END {print " q2 "# Done." q2 "}"
Print( "# Done." )
}