fincs, in the class area you can interpret any standard Function definition as Method
There's no simple way to detect function definitions without having a full-blown AHK parser.
Here would be an example (ignoring leading and trailing whitespace, comments (both kinds) and continuation sections, which are anyway filtered)
^[#[email protected]\w\$]+\(.*\)\s*{?$
False positives:
if(whatever){
myFunc(a, b, c) ; function call, must look ahead to confirm there is no opening brace
False negative:
myFunc(a
,b ,c, d
,e ,f ,g){
As for using brackets, there are ambiguities too:
; brackets or not?
if var = {
if(var){
if Func(whatever) = 3 {
IfInString, var, {
if !var || !var2 {
if var1 + var2 = var3 {
; A possible candidate would be:
; if RegExMatch(line, "i)^if(\s|\().*{$") && !RegExMatch(line, "i)^if\s+[#[email protected]\w\$]+\s*=\s*")
typeof should be a key method - you dont even have to parse any typeof expressions
--> Just add a plain AHK Method typeof(object) which returns a string to the code and handle your checking code there 
I've considered it (& will distribute a stdlib file). In fact, it would be this short:
typeof(obj)
{
return obj.__Type
}
Problem is, if I just embed it in each generated file there will be duplicates. As hinted before, I'm putting this function in a stdlib file in order to allow non-OOP scripts check the type of instances of OOP classes.
What checking code is there to handle? If you mean strong typing, functions are already shimmed.