Parsing parameters:

This is a little tricky because the parameters can have several
variations, including the "const" keyword. Excluding the latter,
the cases look like this:

method() -- no parameters
method( int ) -- type only
method( int value ) -- type and name
method( int & value  ) -- reference parameter, type and name
method( int & ) -- reference parameter, no name
method( int * value ) -- pointer
method( int** value ) -- pointer to pointer
method( unsigned char ch )

Also, the type name could be more than one word, such as
"unsigned char". In addition, a default value might be present,
so the parameters above could be followed by = <value>.

Note that "&", "*", and "**" all come right after the type.

Let's just ramble a bit. Can I write some kind of expression to
represent the parameters. WLOG, assume that there is at least
one parameter.

[unsigned] <identifier> [ * | ** | & ] [ <identifier> ]
