Determine if the supplied chain iterator is at the start of a percent entity and if it is, populate the supplied string (arg 1) with the entity

Return TypeFunction nameArguments
boolhdsApp::AtPcEnt(hzString&,hzChain::Iter&,)

Declared in file: hzDissemino.h
Defined in file : hdsSystem.cpp

Function Logic:

0:START 1:items zi 2:unknown 3:Return false 4:items items 5:unknown 6:Return false 7:items items 8:unknown 9:Return false 10:items 11:unknown 12:items 13:unknown 14:items 15:unknown 16:items 17:unknown 18:items 19:c 20:unknown 21:pcntEnt 22:items 23:Return c?true:false

Function body:

bool hdsApp::AtPcEnt (hzString& pcntEnt)hzChain::Iter& input, 
{
   //  Determine if the supplied chain iterator is at the start of a percent entity and if it is, populate the supplied string (arg 1) with the entity
   //  
   //  Arguments: 1) pcntEnt The hzString to contain the entity
   //     2) input The input text
   //  
   //  Returns: True If a percent entity is found
   //     False Otherwise
   _hzfunc("hdsApp::AsPcEnt") ;
   hzChain     W ;         //  Chain to build entity
   chIter      zi ;        //  Temp iterator
   uint32_t    c = 0;      //  Char count
   pcntEnt.Clear() ;
   zi = input ;
   if (*zi != CHAR_PERCENT)
       return false ;
   W.AddByte(CHAR_PERCENT) ;
   zi++ ;
   if (*zi != ''x''&&*zi != ''e''&&*zi != ''s''&&*zi != ''u'')
       return false ;
   W.AddByte(*zi) ;
   zi++ ;
   if (*zi != CHAR_COLON)
       return false ;
   W.AddByte(CHAR_COLON) ;
   //  Get the variable type and name component
   for (zi++ ; !zi.eof() && *zi != CHAR_SCOLON && IsAlpha(*zi) ; c++, zi++)
       W.AddByte(*zi) ;
   if (c && *zi == CHAR_PERIOD)
   {
       W.AddByte(*zi) ;
       for (zi++ ; !zi.eof() && *zi != CHAR_SCOLON && IsAlpha(*zi) ; zi++)
           W.AddByte(*zi) ;
   }
   if (c && *zi == CHAR_SCOLON)
       W.AddByte(*zi) ;
   else
       c = 0;
   if (c)
       pcntEnt = W ;
   W.Clear() ;
   return c ? true : false ;
}