Changeset 814548d in tol
- Timestamp:
- Mar 24, 2011, 3:35:30 PM (16 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 76b1443f
- Parents:
- 72a07d0
- File:
-
- 1 edited
-
tol/btol/bgrammar/class.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/btol/bgrammar/class.cpp
r72a07d0 r814548d 666 666 //-------------------------------------------------------------------- 667 667 { 668 if(!isGood_ || !ascentHash_) { return(false); } 668 if(!isGood_ || !ascentHash_ || !name.HasName()) { return(false); } 669 if(name==getName()) { return(true); } 669 670 BClassByNameHash::const_iterator found = ascentHash_->find(name); 670 671 return(found!=ascentHash_->end()); … … 676 677 //-------------------------------------------------------------------- 677 678 { 679 if(!parent) { return(false); } 680 if(this==parent) { return(true); } 678 681 return(InheritesFrom(parent->getFullNameRef())); 679 682 //return(InheritesFrom(parent->Name())); … … 1121 1124 BClassByNameHash& par = *(parentHash_); 1122 1125 bool ok = true; 1126 for(iterC=par.begin(); iterC!=par.end(); iterC++) 1127 { 1128 BClass* parent = iterC->second; 1129 ok &= parent->DestroyInstance(instance); 1130 } 1123 1131 if(__destroy) 1124 1132 { … … 1130 1138 BSyntaxObject* result = dstryr->Evaluator(args); 1131 1139 if(!result) { ok = false; } 1132 else { ok = (bool)Real(result); }1140 else { ok = Real(result)!=0.0; } 1133 1141 dstryr->PutNameBlock(old); 1134 1142 DESTROY(result); 1135 1143 } 1136 for(iterC=par.begin(); iterC!=par.end(); iterC++)1137 {1138 BClass* parent = iterC->second;1139 ok &= parent->DestroyInstance(instance);1140 }1141 1144 return(ok); 1142 1145 } … … 1152 1155 //-------------------------------------------------------------------- 1153 1156 { 1154 return(BParser::Unparse(tree_,"","\n")); 1157 //return(BParser::Unparse(tree_,"","\n")); 1158 BText dump; 1159 dump+="\n///////////////////////////////////////////////////////////////////////////////\n"; 1160 dump+=BText("Class ")+FullName()+"\n"; 1161 int n; 1162 if(parentHash_) 1163 { 1164 BClassByNameHash::const_iterator iterC; 1165 BClassByNameHash& par = *(parentHash_); 1166 n=0; 1167 for(iterC=par.begin(); iterC!=par.end(); iterC++, n++) 1168 { 1169 if(iterC->second) 1170 { 1171 if(n) { dump+=", "; } 1172 else { dump+=": "; } 1173 dump += iterC->second->FullName(); 1174 n++; 1175 } 1176 } 1177 } 1178 dump+="\n///////////////////////////////////////////////////////////////////////////////\n"; 1179 if(ascentHash_) 1180 { 1181 BClassByNameHash::const_iterator iterC; 1182 BClassByNameHash& par = *(ascentHash_); 1183 n=0; 1184 for(iterC=par.begin(); iterC!=par.end(); iterC++, n++) 1185 { 1186 if(!n) 1187 { 1188 dump+="\n/*\n"; 1189 dump += BText("Inherites directly or indirectly from these classes:\n "); 1190 } 1191 if(iterC->second) 1192 { 1193 if(n) { dump+="\n "; } 1194 dump += iterC->second->FullName(); 1195 n++; 1196 } 1197 } 1198 dump+="\n*/ \n"; 1199 } 1200 dump += BText("{\n "); 1201 if(memberHash_) 1202 { 1203 BMbrNumByNameHash::const_iterator iterM; 1204 BMbrNumByNameHash& mbr = *(memberHash_); 1205 n=0; 1206 for(iterM=mbr.begin(); iterM!=mbr.end(); iterM++, n++) 1207 { 1208 if(iterM->second) 1209 { 1210 const BMember* mbr = iterM->second->member_; 1211 if(!mbr) { continue; } 1212 const BText& name = mbr->name_; 1213 if((name[0]=='_')&&(name[1]!='.')) { continue; } 1214 if(name.BeginWith("_.autodoc.member.")) { continue; } 1215 if(n) { dump+=";\n"; } 1216 BSyntaxObject* adm = FindStaticMember(BText("_.autodoc.member.")+name, false); 1217 dump+="\n/* ////////////////////////////////////////////////////////////////////////////\n"; 1218 dump += 1219 BText((mbr->isStatic_)?"Static":"Non static")+ " "+ 1220 BText((mbr->isMethod_)?"method":"member")+ 1221 " defined at " + ((BClass*)(mbr->parent_))->FullName()+"\n"; 1222 if(adm) { dump+=Text(adm); } 1223 dump+="\n//////////////////////////////////////////////////////////////////////////// */\n"; 1224 dump+=mbr->declaration_; 1225 if(mbr->definition_.HasName() && !(mbr->isMethod_)) 1226 { 1227 dump+=BText(" = ")+ mbr->definition_; 1228 } 1229 n++; 1230 } 1231 } 1232 } 1233 dump += BText("\n};\n"); 1234 return(dump); 1155 1235 } 1156 1236 //-------------------------------------------------------------------- … … 1583 1663 1584 1664 //-------------------------------------------------------------------- 1585 BSyntaxObject* BClass::FindStaticMem eber(const BText& memberName, bool fullAccess) const1665 BSyntaxObject* BClass::FindStaticMember(const BText& memberName, bool fullAccess) const 1586 1666 //-------------------------------------------------------------------- 1587 1667 {
Note: See TracChangeset
for help on using the changeset viewer.
