954,198 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Need help for conveting Perl Code to a C Code

Hi,
I'm having a Perl Code and i want to convert it into a C Code.
I want to know is there any tool is available to do so?

If not available anybony can help me to convert??:?:
plz mail me at [email]nrk_jegan@yahoo.com[/email]

Regards,
Jeganathan K.

JeganathanK
Newbie Poster
5 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

perlcc that comes with the perl distribution

masijade
Industrious Poster
Moderator
4,253 posts since Feb 2006
Reputation Points: 1,471
Solved Threads: 494
 

Can anyone convert this perl code into C Code???:!: :!:

Code:

open(IN, "$inname");

# read rest of input file in 64K junks while(read(IN, $buffer, 64*1024)) { $data .= $buffer; } close(IN);

my @data = split(//, $data); my $color = 0; my $lastcolor = 0; my $layer = 0; my $strokes = 0; my $points = 0; my $pointcmd = "S"; while($count < $#data) { my $next = ord($data[$count++]);

if (($next & ~0x07) == 0x80) { # pen up/down if ($next & 0x01) { $pointcmd = "S"; print "DEBUG pen down POSITION $count\n" if ($debug); } else { $pointcmd = "L\nE\n"; $strokes++; print "DEBUG pen up POSITION $count\n" if ($debug); }

$color = (($next >> 1) + ($layer * $colorlayers)) & 0x03; print "DEBUG pen color $color\n" if ($debug); if ($color != $lastcolor) { $lastcolor = $color; print OUT "%%Color: $color\n"; print OUT ("0 0 0", "1 0 0", "0 1 0", "0 0 1")[$color] . " RGB\n"; } } elsif ($next == 0x88) { # time stamp my $timestamp = ord($data[$count++]); print "DEBUG TimeStamp $timestamp\n" if ($debug); print OUT "%%TimeStamp: $timestamp\n" if ($timestamp < 0x7f); } elsif ($next == 0x90) { ## end of layer $layer = ord($data[$count++]); print "DEBUG End of LAYER $layer\n" if ($debug); die("Layer # $layer > 127") if ($layer & 0x80); print OUT "%%EndOfLayer: $layer\n\n"; } elsif (!($next & ~0x7f)) { ## coordinates my ($b1, $b2, $b3, $b4) = ($next, ord($data[$count+0]), ord($data[$count+1]), ord($data[$count+2])); $count += 3; printf "DEBUG CHECK position $count A %02x %02x %02x %02x\n", $b1, $b2, $b3, $b4 if ($debug); # die("MSB set in coordinate bytes") if (($b1 | $$b2 | $b3 | $b4) & ~0x7f);

my $x = $b1 + ($b2 << 7); my $y = $b3 + ($b4 << 7); print "DEBUG $count: x = $x / y = $y\n" if ($debug); print OUT "$x $y " . $pointcmd . "\n"; $points++;

$pointcmd = "L"; } else { die("unknown byte " . sprintf("0x%02x", $next) . " at position $count"); } }

JeganathanK
Newbie Poster
5 posts since Mar 2006
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You