Added typedef support, changed filescope to be a normal C-style function instead of a ObjC block, added non-ObjC C++ support