support more oo features

add the support of interface, abstract class, abstract method, final
class and final method
add nameregex constrain to all regexp