Commit 0921dea6 authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Merge pull request #181 from wtschueller/master

Tcl: collect XRefs also if INLINE_SOURCES = no
parents 4827ec0c 9d315a98
Loading
Loading
Loading
Loading
+218 −74
Original line number Original line Diff line number Diff line
@@ -451,6 +451,7 @@ static struct
  QList<Entry> entry; // list of all created entries, will be deleted after codifying
  QList<Entry> entry; // list of all created entries, will be deleted after codifying
  Protection protection; // current protections state
  Protection protection; // current protections state
  MemberDef *memberdef; // contain current MemberDef when codifying
  MemberDef *memberdef; // contain current MemberDef when codifying
  bool collectXRefs;
} tcl;
} tcl;


// scanner functions
// scanner functions
@@ -1652,6 +1653,40 @@ static void tcl_codify_link(QCString name)
    {
    {
        myDef->addSourceReferencedBy(tcl.memberdef);
        myDef->addSourceReferencedBy(tcl.memberdef);
        tcl.memberdef->addSourceReferences(myDef);
        tcl.memberdef->addSourceReferences(myDef);
    } else {
      Entry* callerEntry;
      unsigned int i;
      // walk the stack of scan contexts and find the enclosing method or proc
      for (i=0;i<tcl.scan.count();i++)
      {
        callerEntry=tcl.scan.at(i)->entry_scan;
        if (callerEntry->mtype==Method && !callerEntry->name.isEmpty())
        {
          break;
        }
      }
      if (i<tcl.scan.count())
      {
        // enclosing method found
        QCString callerName = callerEntry->name;
        if (callerName.mid(0,2)=="::") // fully qualified global command
        {
          callerName = callerName.mid(2);
        }
        else
        {
          if (!(tcl.scan.at(0)->ns.stripWhiteSpace().isEmpty()))
          {
            callerName = tcl.scan.at(0)->ns + "::" + callerEntry->name;
          }
        }
        MemberDef *callerDef=NULL;
        callerDef = fn.find(callerName);
        if (callerDef!=NULL && myDef!= NULL && tcl.collectXRefs)
        {
          addDocCrossReference(callerDef,myDef);
        }
      }
    }
    }
  }
  }
  else if (tcl_keyword(myName)) // check keyword
  else if (tcl_keyword(myName)) // check keyword
@@ -1665,6 +1700,122 @@ static void tcl_codify_link(QCString name)
  
  
}
}


//! scan general argument for brackets
//
// parses (*tcl.list_commandwords.at(i)).utf8() and checks for brackets.
// Starts a new scan context if needed (*myScan==0 and brackets found).
// Returns NULL or the created scan context.
//
static tcl_scan *tcl_command_ARG(tcl_scan *myScan, unsigned int i, bool ignoreOutermostBraces)
{
  QCString myName;
  bool insideQuotes=false;
  unsigned int insideBrackets=0;
  unsigned int insideBraces=0;
  myName = (*tcl.list_commandwords.at(i)).utf8();
  if (i%2 != 0)
  {
    // handle white space
    if (myScan!=NULL)
    {
      myScan->after << "NULL" << myName;
    }
    else
    {
      tcl_codify(NULL,myName);
    }
  }
  else
  {
    QCString myStr = "";
    unsigned int j;
    for (j=0;j<myName.length();j++)
    {
      QChar c = myName[j];
      bool backslashed = false;
      if (j>0)
      {
        backslashed = myName[j-1]=='\\';
      }
      // this is a state machine
      // input is c
      // internal state is myScan and insideXXX
      // these are the transitions:
      if (c=='[' && !backslashed && insideBraces==0)
      {
        insideBrackets++;
      }
      if (c==']' && !backslashed && insideBraces==0 && insideBrackets>0)
      {
        insideBrackets--;
      }
      if (c=='{' && !backslashed && !insideQuotes && !(ignoreOutermostBraces && j==0))
      {
        insideBraces++;
      }
      if (c=='}' && !backslashed && !insideQuotes && insideBraces>0)
      {
        insideBraces--;
      }
      if (c=='"' && !backslashed && insideBraces==0)
      {
        insideQuotes=!insideQuotes;
      }
      // all output, depending on state and input
      if (c=='[' && !backslashed && insideBrackets==1 && insideBraces==0)
      {
        // the first opening bracket, output what we have so far
        myStr+=c;
        if (myScan!=NULL)
        {
          myScan->after << "NULL" << myStr;
        }
        else
        {
          tcl_codify(NULL,myStr);
        }
        myStr="";
      }
      else if (c==']' && !backslashed && insideBrackets==0 && insideBraces==0)
      {
        // the last closing bracket, start recursion, switch to deferred
        if (myScan!=NULL)
        {
          myScan->after << "script" << myStr;
        }
        else
        {
          myScan=tcl.scan.at(0);
          myScan = tcl_scan_start('?',myStr,
                  myScan->ns,myScan->entry_cl,myScan->entry_fn);
        }
        myStr="";
        myStr+=c;
      }
      else
      {
         myStr+=c;
      }
    }
    if (myScan!=NULL)
    {
      myScan->after << "NULL" << myStr;
    }
    else
    {
      if (i==0)
      {
        tcl_codify_link(myStr);
      }
      else
      {
        tcl_codify(NULL,myStr);
      }
    }
  }
  return (myScan);
}

//! Handle internal tcl commands.
//! Handle internal tcl commands.
// "if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else?  ?bodyN?"
// "if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else?  ?bodyN?"
static void tcl_command_IF(QStringList type)
static void tcl_command_IF(QStringList type)
@@ -1672,13 +1823,28 @@ static void tcl_command_IF(QStringList type)
D
D
  tcl_codify_cmd("keyword",0);
  tcl_codify_cmd("keyword",0);
  tcl_codify_cmd(NULL,1);
  tcl_codify_cmd(NULL,1);
  tcl_scan *myScan=tcl.scan.at(0);
  tcl_scan *myScan = NULL;
  myScan = tcl_scan_start('?',*tcl.list_commandwords.at(2),
  myScan = tcl_command_ARG(myScan, 2, true);
        myScan->ns,myScan->entry_cl,myScan->entry_fn);
  for (unsigned int i = 3;i<tcl.list_commandwords.count();i++)
  for (unsigned int i = 3;i<tcl.list_commandwords.count();i++)
  {
    if (type[i] == "expr")
    {
      myScan = tcl_command_ARG(myScan, i, true);
    }
    else
    {
      if (myScan!=0)
      {
      {
        myScan->after << type[i] << tcl.list_commandwords[i];
        myScan->after << type[i] << tcl.list_commandwords[i];
      }
      }
      else
      {
        myScan=tcl.scan.at(0);
        myScan = tcl_scan_start('?',*tcl.list_commandwords.at(i),
              myScan->ns,myScan->entry_cl,myScan->entry_fn);
      }
    }
  }
}
}
//! Handle internal tcl commands.
//! Handle internal tcl commands.
// "for start test next body"
// "for start test next body"
@@ -1691,7 +1857,7 @@ D
  myScan = tcl_scan_start('?',*tcl.list_commandwords.at(2),
  myScan = tcl_scan_start('?',*tcl.list_commandwords.at(2),
        myScan->ns,myScan->entry_cl,myScan->entry_fn);
        myScan->ns,myScan->entry_cl,myScan->entry_fn);
  myScan->after << "NULL" << tcl.list_commandwords[3];
  myScan->after << "NULL" << tcl.list_commandwords[3];
  myScan->after << "script" << tcl.list_commandwords[4];
  myScan = tcl_command_ARG(myScan, 4, true);
  myScan->after << "NULL" << tcl.list_commandwords[5];
  myScan->after << "NULL" << tcl.list_commandwords[5];
  myScan->after << "script" << tcl.list_commandwords[6];
  myScan->after << "script" << tcl.list_commandwords[6];
  myScan->after << "NULL" << tcl.list_commandwords[7];
  myScan->after << "NULL" << tcl.list_commandwords[7];
@@ -1705,15 +1871,23 @@ static void tcl_command_FOREACH()
{
{
D
D
  unsigned int i;
  unsigned int i;
  tcl_scan *myScan=NULL;
  tcl_codify_cmd("keyword",0);
  tcl_codify_cmd("keyword",0);
  for (i = 1;i<tcl.list_commandwords.count()-1;i++)
  for (i = 1;i<tcl.list_commandwords.count()-1;i++)
  {
  {
    tcl_codify_cmd(NULL,i);
    myScan = tcl_command_ARG(myScan, i, false);
  }
  }
  tcl_scan *myScan=tcl.scan.at(0);
  if (myScan!=0)
  {
    myScan->after << "script" << tcl.list_commandwords[tcl.list_commandwords.count()-1];
  }
  else
  {
    myScan=tcl.scan.at(0);
    myScan = tcl_scan_start('?',*tcl.list_commandwords.at(tcl.list_commandwords.count()-1),
    myScan = tcl_scan_start('?',*tcl.list_commandwords.at(tcl.list_commandwords.count()-1),
          myScan->ns,myScan->entry_cl,myScan->entry_fn);
          myScan->ns,myScan->entry_cl,myScan->entry_fn);
  }
  }
}


///! Handle internal tcl commands.
///! Handle internal tcl commands.
// "while test body"
// "while test body"
@@ -1722,68 +1896,29 @@ static void tcl_command_WHILE()
D
D
  tcl_codify_cmd("keyword",0);
  tcl_codify_cmd("keyword",0);
  tcl_codify_cmd(NULL,1);
  tcl_codify_cmd(NULL,1);
  tcl_scan *myScan=tcl.scan.at(0);
  tcl_scan *myScan = NULL;
  myScan = tcl_scan_start('?',*tcl.list_commandwords.at(2),
  myScan = tcl_command_ARG(myScan, 2, true);
        myScan->ns,myScan->entry_cl,myScan->entry_fn);
  myScan = tcl_command_ARG(myScan, 3, false);
  myScan->after << "NULL" << tcl.list_commandwords[3];
  if (myScan!=0)
  {
    myScan->after << "script" << tcl.list_commandwords[4];
    myScan->after << "script" << tcl.list_commandwords[4];
  }
  }
  else
  {
  myScan=tcl.scan.at(0);
  myScan = tcl_scan_start('?',*tcl.list_commandwords.at(4),
        myScan->ns,myScan->entry_cl,myScan->entry_fn);
  }
}


//! Handle all other commands.
//! Handle all other commands.
// Create links of first command word or first command word inside [].
// Create links of first command word or first command word inside [].
static void tcl_command_OTHER()
static void tcl_command_OTHER()
{
{
  if (tcl.code == NULL) return;
  tcl_scan *myScan=NULL;
D
  QCString myName;
  for (unsigned int i=0; i< tcl.list_commandwords.count(); i++)
  for (unsigned int i=0; i< tcl.list_commandwords.count(); i++)
  {
  {
    myName = (*tcl.list_commandwords.at(i)).utf8();
    myScan = tcl_command_ARG(myScan, i, false);
    if (i==0)
    {
      tcl_codify_link(myName);
    }
    else if (i%2 != 0)
    {
      tcl_codify(NULL,myName);
    }
    else
    {
      QCString myStr="";
      int myCmd=0;
      unsigned int i;
      for (i=0;i<myName.length();i++)
      {
        QChar c = myName[i];
        if (myCmd) 
        {
          if (c==' '||c=='\t'||c=='\n'||c==']') 
          {//end of command
            tcl_codify_link(myStr);
            myStr="";
            myCmd=0;
          }
          myStr+=c;
        } 
        else 
        {
          myStr+=c;
          if (c=='[') 
          {//start of command
            for (;i<myName.length();i++)
            {
              c = myName[i+1];
              if (c!=' ' && c!='\t' && c!='\n') break;
              myStr+=c;
            }
            tcl_codify(NULL,myStr);
            myStr="";
            myCmd=1;
          }
        }
      }
      tcl_codify(NULL,myStr);
    }
  }
  }
}
}


@@ -2165,13 +2300,14 @@ tcl_inf("->\n");


  // check command
  // check command
  QCString myStr = (*tcl.list_commandwords.at(0)).utf8();
  QCString myStr = (*tcl.list_commandwords.at(0)).utf8();
  tcl_scan *myScanBackup=tcl.scan.at(0);
  int myLevel = 0;
  int myLevel = 0;
  Protection myProt = tcl.protection;
  Protection myProt = tcl.protection;


  if (tcl.list_commandwords.count() < 3)
  if (tcl.list_commandwords.count() < 3)
  {
  {
    tcl_command_OTHER();
    tcl_command_OTHER();
    goto command_text;
    goto command_end;
  }
  }
  // remove leading "::" and apply TCL_SUBST
  // remove leading "::" and apply TCL_SUBST
  if (myStr.left(2)=="::") myStr = myStr.mid(2);
  if (myStr.left(2)=="::") myStr = myStr.mid(2);
@@ -2259,7 +2395,7 @@ tcl_inf("->\n");
      goto command_end;
      goto command_end;
    }
    }
    tcl_command_OTHER();
    tcl_command_OTHER();
    goto command_text;
    goto command_end;
  }
  }
  if (myStr=="itcl::class")
  if (myStr=="itcl::class")
  {
  {
@@ -2282,7 +2418,7 @@ tcl_inf("->\n");
      goto command_end;
      goto command_end;
    }
    }
    tcl_command_OTHER();
    tcl_command_OTHER();
    goto command_text;
    goto command_end;
  }
  }
  if (myStr=="oo::define")
  if (myStr=="oo::define")
  {
  {
@@ -2296,7 +2432,7 @@ tcl_inf("->\n");
    if (tcl.scan.at(0)->entry_fn == NULL)
    if (tcl.scan.at(0)->entry_fn == NULL)
    {// only parsed outside functions
    {// only parsed outside functions
      tcl_command_VARIABLE(tcl.scan.at(0)->entry_cl && tcl.scan.at(0)->entry_cl->name!="");
      tcl_command_VARIABLE(tcl.scan.at(0)->entry_cl && tcl.scan.at(0)->entry_cl->name!="");
      goto command_text;
      goto command_end;
    }
    }
  }
  }
  if (myStr=="common")
  if (myStr=="common")
@@ -2305,7 +2441,7 @@ tcl_inf("->\n");
    if (tcl.scan.at(0)->entry_fn == NULL)
    if (tcl.scan.at(0)->entry_fn == NULL)
    {// only parsed outside functions
    {// only parsed outside functions
      tcl_command_VARIABLE(0);
      tcl_command_VARIABLE(0);
      goto command_text;
      goto command_end;
    }
    }
  }
  }
  if (myStr=="inherit" || myStr=="superclass")
  if (myStr=="inherit" || myStr=="superclass")
@@ -2343,7 +2479,7 @@ if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
  if (myStr=="if" && tcl.list_commandwords.count() > 4)
  if (myStr=="if" && tcl.list_commandwords.count() > 4)
  {
  {
    QStringList myType;
    QStringList myType;
    myType << "keyword" << "NULL" << "script" << "NULL";
    myType << "keyword" << "NULL" << "expr" << "NULL";
    char myState='x';// last word: e'x'pr 't'hen 'b'ody 'e'lse else'i'f..
    char myState='x';// last word: e'x'pr 't'hen 'b'ody 'e'lse else'i'f..
    for (unsigned int i = 4; i < tcl.list_commandwords.count(); i = i + 2)
    for (unsigned int i = 4; i < tcl.list_commandwords.count(); i = i + 2)
    {
    {
@@ -2392,7 +2528,7 @@ if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
      else if (myState=='i')
      else if (myState=='i')
      {
      {
        myState='x';
        myState='x';
        myType << "script" << "NULL";
        myType << "expr" << "NULL";
      }
      }
    }
    }
    if (myState != 'b') {myLine=__LINE__;goto command_warn;}
    if (myState != 'b') {myLine=__LINE__;goto command_warn;}
@@ -2406,15 +2542,22 @@ if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
    goto command_end;
    goto command_end;
  }
  }
  tcl_command_OTHER();
  tcl_command_OTHER();
  goto command_text;
  goto command_end;
  command_warn:// print warning message because of wrong used syntax
  command_warn:// print warning message because of wrong used syntax
    tcl_war("%d count=%d: %s\n",myLine,tcl.list_commandwords.count(),tcl.list_commandwords.join(" ").ascii());
    tcl_war("%d count=%d: %s\n",myLine,tcl.list_commandwords.count(),tcl.list_commandwords.join(" ").ascii());
    tcl_command_OTHER();
    tcl_command_OTHER();
  command_text:// print remaining text as comment
    if (!myText.isEmpty()) tcl_codify("comment",myText);
    myText = "";
  command_end:// add remaining text to current context
  command_end:// add remaining text to current context
    if (!myText.isEmpty()) tcl.scan.at(0)->after << "comment" << myText;
    if (!myText.isEmpty())
    {
      if(myScanBackup==tcl.scan.at(0))
      {
        tcl_codify("comment",myText);  
      }
      else
      {
        tcl.scan.at(0)->after << "comment" << myText;
      }
    }
    tcl.list_commandwords.clear();
    tcl.list_commandwords.clear();
    tcl.command = 0;
    tcl.command = 0;
    tcl.protection = myProt;
    tcl.protection = myProt;
@@ -2634,6 +2777,7 @@ tcl_inf("%s (%d,%d) %d %d\n",myStr.ascii(),startLine,endLine,isExampleBlock,inli
    return;
    return;
  }
  }
  tcl_init();
  tcl_init();
  tcl.collectXRefs = collectXRefs;
  tcl.memberdef = memberDef;
  tcl.memberdef = memberDef;
  tcl.code = &codeOutIntf;
  tcl.code = &codeOutIntf;
  if (startLine<0) 
  if (startLine<0) 
+64 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
  <compounddef id="057__caller__graphs_8tcl" kind="file">
    <compoundname>057_caller_graphs.tcl</compoundname>
    <innernamespace refid="namespacebar">bar</innernamespace>
    <innernamespace refid="namespacefoo">foo</innernamespace>
    <innernamespace refid="namespace1_1_11_1_11">1::1::1</innernamespace>
    <innernamespace refid="namespace1">1</innernamespace>
    <innernamespace refid="namespace1_1_11">1::1</innernamespace>
    <innernamespace refid="namespace2_1_12_1_12_1_12_1_12">2::2::2::2::2</innernamespace>
    <innernamespace refid="namespace2">2</innernamespace>
    <innernamespace refid="namespace2_1_12">2::2</innernamespace>
    <innernamespace refid="namespace2_1_12_1_12">2::2::2</innernamespace>
    <innernamespace refid="namespace2_1_12_1_12_1_12">2::2::2::2</innernamespace>
    <sectiondef kind="func">
      <memberdef kind="function" id="057__caller__graphs_8tcl_1a85c692c418fec91930cfc7b3e82857d7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>baz</definition>
        <argsstring>args</argsstring>
        <name>baz</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="57" bodyend="59"/>
      </memberdef>
      <memberdef kind="function" id="057__caller__graphs_8tcl_1ae4e1c2bb3adfdfbb71f52de84a8285b0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>bar</definition>
        <argsstring>args</argsstring>
        <name>bar</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="63" bodyend="65"/>
        <referencedby refid="namespace1_1a9722420639306872cea2593b83028a45" compoundref="057__caller__graphs_8tcl" startline="83" endline="86">1::test3</referencedby>
      </memberdef>
      <memberdef kind="function" id="057__caller__graphs_8tcl_1a3f808a00e1b937978455d707851ab33a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>next</definition>
        <argsstring>args</argsstring>
        <name>next</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="100" bodyend="103"/>
        <references refid="namespace2_1a2839d9dea7f0d08f48958c3fc0cd00d3" compoundref="057__caller__graphs_8tcl" startline="104" endline="112">2::next</references>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="057_caller_graphs.tcl"/>
  </compounddef>
</doxygen>
+113 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
  <compounddef id="namespace1" kind="namespace">
    <compoundname>1</compoundname>
    <innernamespace refid="namespace1_1_11">1::1</innernamespace>
    <sectiondef kind="func">
      <memberdef kind="function" id="namespace1_1a5024a7bc323958c7230615f2fcaeaef8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::baz</definition>
        <argsstring>args</argsstring>
        <name>baz</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="60" bodyend="62"/>
        <referencedby refid="namespace1_1a4a8285288ee1994ac886e2039777339e" compoundref="057__caller__graphs_8tcl" startline="75" endline="78">test1</referencedby>
        <referencedby refid="namespace1_1a11615154d3c207ed4106dd0bcb0639e8" compoundref="057__caller__graphs_8tcl" startline="91" endline="94">test5</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespace1_1ad58c8f16ad5f12178c71ca988865bb58" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::bar</definition>
        <argsstring>args</argsstring>
        <name>bar</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="66" bodyend="68"/>
        <referencedby refid="namespace1_1ae1e88bb7ddd332348d7e29ac4a211b00" compoundref="057__caller__graphs_8tcl" startline="79" endline="82">test2</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespace1_1a4a8285288ee1994ac886e2039777339e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::test1</definition>
        <argsstring>args</argsstring>
        <name>test1</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="75" bodyend="78"/>
        <references refid="namespace1_1a5024a7bc323958c7230615f2fcaeaef8" compoundref="057__caller__graphs_8tcl" startline="60" endline="62">baz</references>
      </memberdef>
      <memberdef kind="function" id="namespace1_1ae1e88bb7ddd332348d7e29ac4a211b00" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::test2</definition>
        <argsstring>args</argsstring>
        <name>test2</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="79" bodyend="82"/>
        <references refid="namespace1_1ad58c8f16ad5f12178c71ca988865bb58" compoundref="057__caller__graphs_8tcl" startline="66" endline="68">bar</references>
      </memberdef>
      <memberdef kind="function" id="namespace1_1a9722420639306872cea2593b83028a45" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::test3</definition>
        <argsstring>args</argsstring>
        <name>test3</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="83" bodyend="86"/>
        <references refid="057__caller__graphs_8tcl_1ae4e1c2bb3adfdfbb71f52de84a8285b0" compoundref="057__caller__graphs_8tcl" startline="63" endline="65">bar</references>
      </memberdef>
      <memberdef kind="function" id="namespace1_1addc9b30656419de5e2651e27a013db29" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::test4</definition>
        <argsstring>args</argsstring>
        <name>test4</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="87" bodyend="90"/>
        <references refid="namespace1_1_11_1acebecc4cb718010d00c3c150158b75ab" compoundref="057__caller__graphs_8tcl" startline="69" endline="71">1::1::bar</references>
      </memberdef>
      <memberdef kind="function" id="namespace1_1a11615154d3c207ed4106dd0bcb0639e8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::test5</definition>
        <argsstring>args</argsstring>
        <name>test5</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="91" bodyend="94"/>
        <references refid="namespace1_1a5024a7bc323958c7230615f2fcaeaef8" compoundref="057__caller__graphs_8tcl" startline="60" endline="62">baz</references>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="[generated]" line="1" column="1"/>
  </compounddef>
</doxygen>
+28 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
  <compounddef id="namespace1_1_11" kind="namespace">
    <compoundname>1::1</compoundname>
    <innernamespace refid="namespace1_1_11_1_11">1::1::1</innernamespace>
    <sectiondef kind="func">
      <memberdef kind="function" id="namespace1_1_11_1acebecc4cb718010d00c3c150158b75ab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::1::bar</definition>
        <argsstring>args</argsstring>
        <name>bar</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="69" bodyend="71"/>
        <referencedby refid="namespace1_1addc9b30656419de5e2651e27a013db29" compoundref="057__caller__graphs_8tcl" startline="87" endline="90">1::test4</referencedby>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="[generated]" line="1" column="1"/>
  </compounddef>
</doxygen>
+26 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
  <compounddef id="namespace1_1_11_1_11" kind="namespace">
    <compoundname>1::1::1</compoundname>
    <sectiondef kind="func">
      <memberdef kind="function" id="namespace1_1_11_1_11_1aa604df053f7ebe36205d1a5675459b96" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type/>
        <definition>1::1::1::bar</definition>
        <argsstring>args</argsstring>
        <name>bar</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="057_caller_graphs.tcl" bodystart="72" bodyend="74"/>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="057_caller_graphs.tcl" line="56" column="1"/>
  </compounddef>
</doxygen>
Loading