added support for C functions

C functions are handled by a separate regular expression. Internally a C
function
foo(a,b,c)
is treated as
foo::foo(a,b,c)