R_Variable r=new R_Variable();
if(this.pre_accs==null||this.pre_accs.rst_val.equals("this")){// f()/this.f()
f=codegen.getFuncInSymTb(this.var.name);
if(f==null)
throw new TypeCheckException("Type Check Error: not defined function "+this.var.name);
<BUG>if(f.isMethod()){
this.ptr_scp="this";
}else if(this.pre_accs==null){
this.ptr_scp="global";
}else if(this.pre_accs.rst_val.equals("this")){
throw new TypeCheckException("Type Check Error: not defined function "+this.var.name);

}
}else{//if(this.pre_accs==null)</BUG>
if(this.pre_accs.rst_type.equals("class")){//A.class.f()

R_Variable r=new R_Variable();
if(this.pre_accs==null||this.pre_accs.rst_val.equals("this")){// f()/this.f()
f=codegen.getFuncInSymTb(this.var.name);
if(f==null)
throw new TypeCheckException("Type Check Error: not defined function "+this.var.name);
if(this.ptr_scp.equals("this")&&!codegen.isScopeIn("class")){
throw new TypeCheckException("Type Check Error: not in class scope"+this.var.name);
}else if(this.pre_accs==null&&!codegen.isScopeIn("class")){
this.ptr_scp="global";
}else
throw new TypeCheckException("Type Check Error: scope "+this.var.name);
}else{//if this.pre_accs!=null&&!this.pre_accs.rst_val.equals("this")
if(this.pre_accs.rst_type.equals("class")){//A.class.f()
