static void *foo(int param1,
                 char *param2
);


static void *foo
(
        int param1,
        char *param2
)
{
	for (
	        int i = 0;
	        i< 10;
	        i++
	)
	{
		bar(
		        arg1,
		        arg2
		);
		if ( ( abc < bcd )
		     &&( 123 < abc )
		)
		{
			none(arg1,
			     arg2,
			     arg3
			);
		}
	}
}


void CWarningAnalyzer::SetEffect(int FilterNumber
                                 ,bool Exclude
                                 , int Red
                                 , int Green
                                 , int Blue
                                 , bool Italic
                                 , bool Bold
                                 , bool Underlined
)
{
	/* TODO */
}
