Exemplo n.º 1
0
Arquivo: RoseToTerm.C Projeto: 8l/rose
/**
 * class: SgMemberFunctionType
 * term: member_function_type(tpe,he,argl,mfs)
 * arg tpe: return type
 * arg he: has_ellipses - flag
 * arg argl: argument type list (PrologList of SgType - Annotations
 * arg mfs: mfunc_specifier of type
 * */
PrologCompTerm*  
RoseToTerm::getMemberFunctionTypeSpecific(SgType* mytype) {
  /*let ROSE do casting and testing*/
  SgMemberFunctionType* ftype = isSgMemberFunctionType(mytype);
  ROSE_ASSERT(ftype != NULL);
  /*this is a nested type*/
  return new PrologCompTerm
    ("member_function_type", /*4,*/
     /*recurse with getTypeSpecific*/
     getTypeSpecific(ftype->get_return_type()),
    /*we need to know wether it has ellipses for the constructor for unparsing*/
     getEnum(ftype->get_has_ellipses(), re.ellipses_flags),
     /*arguments*/
     getTypePtrListSpecific(ftype->get_arguments()),
     /* mfunc_specifier*/
     getEnum(ftype->get_mfunc_specifier(), re.declaration_modifiers));
}