`del definitions`;
`del rules`;
`del usercode`;
`del parser.ll`;
while (<>)
{
	if($ARGV ne $oldargv)
	{
		open STDOUT,  ">>definitions";	
		$lineNumber = 1;
		printf("#line %d \"%s\"\n", $lineNumber, $ARGV);
		$oldargv = $ARGV;
		$section = 0;
	
	}
}
continue{
	$lineNumber++;

	/\%\%/;
	if ($&)
	{
		$section++;

		close STDOUT;
		if($section eq 1)
		{
			open STDOUT,  ">>rules";	
		}
		if($section eq 2)
		{
			open STDOUT,  ">>usercode";	
		}
		printf("#line %d \"%s\"\n", $lineNumber, $ARGV);

	}
	else
	{
		print;
	}
}
close STDOUT;

`type definitions >parser.ll`;
`echo %% >>parser.ll`	;
`type rules >>parser.ll`;
`echo %% >>parser.ll`;
`type usercode >>parser.ll`;
`del definitions`;
`del rules`;
`del usercode`;