use warnings; use strict; #### $src_filename = $ARGV[0]; $var_filename = $ARGV[1]; $tgt_filename = $ARGV[2]; $mac_filename = $ARGV[2]; #### die "Usage: four arguments\n" unless $#ARGV == 3; my ($src_filename,$var_filename,$tgt_filename,$mac_filename) = @ARGV; #### while (defined my $line = ) { chomp; # remove \n from the end of the line ... } #### #Read only 1 - 72 columns data $Line =~ /.{72}/; $Line = $&; $Line = $Line."\n"; #### $Temp = $Line; #Remove evrything after column 40 fromt he code $Line =~ /.{40}/; $description = $'; $Line = $&; chomp($description); $description =~s/\s+$//g; #### $Line =~s/\(/\'/g; $Line =~s/\)/\'/g; if($Line =~/([^\s]+)\s+(DC|DS|EQU)\s+(A|X|C|H|F|D|0X|0D|0C)+(L)*([^\'\(\s]+)*(\'(.+)\')*\s*/i) { $Print_Line = " "; $Print_Line = $1.",".$3.",".$5.",".$7.",".$description."\n"; push(@Var_File_Array,$Print_Line); } else { if($Temp!~/^\s*\*/ and $Temp!~/^\s+$/) #lines other than comments and line spaces { push(@Tgt_File_Array,$Temp); if($Temp=~/\s+(EQU)\s+(\*)/i) #remove EQU * from the statements { $Temp = $`; $Temp = $Temp."\n"; pop @Tgt_File_Array; push(@Tgt_File_Array,$Temp); if(length($Temp)>1) { @split_words = split(' ',$Temp); #to remove line comments #pop @Tgt_File_Array; push(@Tgt_File_Array,@split_words[0],' ',@split_words[1]); } } } #### if($line =~/([^\s]+)\s+(DC|DS|EQU)\s+(A|X|C|H|F|D|0X|0D|0C)+(L)*([^\'\(\s]+)*(\'(.+)\')*\s*/i) { ($line,my $description) = ($line=~/^(.{40})(.*)\s+$/); # do the actual $line modification only there $line =~ tr/\(\)/''/g; push(@Var_File_Array,$1.",".$3.",".$5.",".$7.",".$description."\n"); } elsif (!($line=~/^\s*\*|^\s*$/)) { push(@Tgt_File_Array,$line); if ($line =~ s/\s+EQU\s+\*.*$/i) { pop @Tgt_File_Array; push(@Tgt_File_Array,$line."\n"); length $line > 0 && push @Tgt_File_Array,(join " ",(split ' ',$line)[0,1]); } }