#!/usr/bin/perl -w
#
#tento skript konvertuje FNG na MAHO
#$1 - prvni pozicni - obsahuje jmeno vstupniho FNG souboru
#Znaky jsou bud jednoduche, nebo nasledovane -
#konvertuje ze skalaru radek do mradek
#Chyba/ nekonvertuje - do prazdna, nebo maze cele radky
sub gkonvert
{
$hexo = substr($radek,$i+1,6) ;#sestice doplnujici kriticky G40 G01
$duo = substr($radek,$i+1,3) ;#dvojice doplnujici kriticky G00,G01,G02,G03
if ($hexo =~ /40 G01/ )
{
$cast = "G40" ;
$i += 6 ;
}
	elsif ($duo =~ /00|01|02|03/ )
	{
	++$i ;	
	}


}
sub xikonvert
{
	  {
	  $castdal = substr($radek,$i+1,$k);
		if ( $castdal =~ /-/)
		{
		#vlastni konverze z dubloznaku         
			  
		++$i; 
		}
		elsif ( $castdal =~ /\+/)
				{
				$cast = $cast . '-' ;		
				++$i; 
				}
		else
				{
				$cast = $cast . '-' ;		
				}
			
	  }
}
$mazminus = 0;  
$k = 1 ; #krok postupu po retezci
open(ARGV, "<$soub") ;
while ($radek = <ARGV>  ) 
{
	$mradek = "" ;
	if ($radek =~ /^N[0-9]*[ ].*$/ )
	{

	$i = 0 ;
	do 
	  {
	  $cast = substr($radek,$i,$k);
#	  ++$i ;
	  if ( $cast =~ /X|I/ ) 
	   {
		xikonvert
	   }

	    elsif ( $cast =~ /G/ ) 
	     {
	     	gkonvert #vlastni konverze G-cek
	
	     }
	   	else
			{
			 $cast =~ tr/YZJK/ZYKJ/;#vlastni konverze jednoduchych YZJK
			}
		
	  $i += $k ;
	  $mradek = $mradek . $cast ;

	  }
	while ( $cast ne "") ;
	  print $mradek;

	}
		else
		{	
			$uvod = $radek ;
			print $uvod ;
		}
}
close (ARGV) ;






