278{
279 if (md==nullptr && context==nullptr) return;
280
281 const FileDef *fd = nullptr;
282 const ClassDef *cd = nullptr;
283 const NamespaceDef *nd = nullptr;
284
285 if (md)
286 {
291 }
292
293 DString scope;
294 DString type;
295 DString decl;
296
297
298 DString lang;
300 if (md)
301 {
303 }
304 else if (context)
305 {
307 }
308 switch (langExt)
309 {
310 case SrcLangExt::Cpp:
311 case SrcLangExt::ObjC:
312 {
314 lang="occ";
316 lang="c";
317 else if (cd==nullptr && nd==nullptr)
318 lang="c";
319 else
320 lang="cpp";
321 }
322 break;
323 case SrcLangExt::IDL: lang="idl"; break;
324 case SrcLangExt::CSharp: lang="csharp"; break;
325 case SrcLangExt::PHP: lang="php"; break;
326 case SrcLangExt::D: lang="d"; break;
327 case SrcLangExt::Java: lang="java"; break;
328 case SrcLangExt::JS: lang="javascript"; break;
329 case SrcLangExt::Python: lang="python"; break;
330 case SrcLangExt::Fortran: lang="fortran"; break;
331 case SrcLangExt::VHDL: lang="vhdl"; break;
332 case SrcLangExt::XML: lang="xml"; break;
333 case SrcLangExt::SQL: lang="sql"; break;
334 case SrcLangExt::Markdown:lang="markdown"; break;
335 case SrcLangExt::Slice: lang="slice"; break;
336 case SrcLangExt::Lex: lang="lex"; break;
337 case SrcLangExt::Unknown: lang="unknown"; break;
338 }
339
340 if (context && md)
341 {
343 {
344 case MemberType::Define:
345 type="macro"; break;
346 case MemberType::Function:
349 {
351 type="clm";
352 else
353 type="instm";
354 }
356 {
358 type="intfcm";
359 else
360 type="intfm";
361 }
362 else
363 type="func";
364 break;
365 case MemberType::Variable:
366 type="data"; break;
367 case MemberType::Typedef:
368 type="tdef"; break;
369 case MemberType::Enumeration:
370 type="enum"; break;
371 case MemberType::EnumValue:
372 type="econst"; break;
373
374
375 case MemberType::Signal:
376 type="signal"; break;
377 case MemberType::Slot:
378 type="slot"; break;
379 case MemberType::Friend:
380 type="ffunc"; break;
381 case MemberType::DCOP:
382 type="dcop"; break;
383 case MemberType::Property:
385 type="intfp";
386 else
387 type="instp";
388 break;
389 case MemberType::Event:
390 type="event"; break;
391 case MemberType::Interface:
392 type="ifc"; break;
393 case MemberType::Service:
394 type="svc"; break;
395 case MemberType::Sequence:
396 type="sequence"; break;
397 case MemberType::Dictionary:
398 type="dictionary"; break;
399 }
402 if (fd)
403 {
405 }
407 }
409 {
411 {
413 }
415 {
417 }
419 {
421 }
422 if (fd)
423 {
424 type="file";
425 }
426 else if (cd)
427 {
430 {
431 type="tmplt";
432 }
434 {
435 type="intf";
437 }
439 {
440 type="cl";
441 }
443 {
444 type="cat";
445 }
446 else
447 {
448 type = "cl";
449 }
451 if (ii)
452 {
454 }
455 }
456 else if (nd)
457 {
459 type = "ns";
460 }
462 {
463 writeToken(
p->tts,context,type,lang,scope,DString(),decl);
465 }
466 }
467}
virtual bool isTemplate() const =0
Returns true if this class is a template.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e. class/struct/union/...
virtual const IncludeInfo * includeInfo() const =0
DString left(size_t len) const
const std::string & str() const
bool endsWith(const char *s) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isLinkable() const =0
virtual DefType definitionType() const =0
virtual const DString & name() const =0
virtual DString qualifiedName() const =0
virtual DString anchor() const =0
virtual DString getOutputFileBase() const =0
void writeToken(TextStream &t, const Definition *d, const DString &type, const DString &lang, const DString &scope=DString(), const DString &anchor=DString(), const DString &decl=DString())
virtual bool isObjCMethod() const =0
virtual const ClassDef * getClassDef() const =0
virtual const FileDef * getFileDef() const =0
virtual bool isStatic() const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual DString getScopeString() const =0
virtual bool isObjCProperty() const =0
virtual MemberType memberType() const =0
ClassDef * toClassDef(Definition *d)
FileDef * toFileDef(Definition *d)
NamespaceDef * toNamespaceDef(Definition *d)