private static double ReadDoubleParam( Command cmd, string msgParamParamName )
{
string s = cmd.Next();
if ( string.IsNullOrWhiteSpace( s ) )
throw new ArgumentException( "missing param variable " + msgParamParamName );
double d;
if ( !double.TryParse( s, out d ) )
throw new ArgumentException( "cannot parse param variable " + msgParamParamName );
return d;
}