Return TypeFunction nameArguments
hzEcodeTokenizeWords(hzVect<hzToken>&,hzChain&,)

Declared and defined in file: hzTokens.cpp

Function Logic:

0:START 1:hzVect::Clear hzChain::Size 2:!C.Size() 3:Return E_NODATA 4:!ci.eof(); 5:*ci<=(char)32 6:items 7:*ci==(char)34 8:hzString::Clear hzChain::Clear hzChain::Iter::Line nLine 9:!ci.eof(); 10:*ci==(char)34 11:items 12:hzChain::AddByte hzChain::Size 13:word.Size() 14:S hzToken::Init hzVect::Add 15:ci==/* 16:!ci.eof(); 17:ci==*/ 18:ci 19:IsAlphanum(*ci) 20:hzString::Clear hzChain::Clear hzChain::Iter::Line nLine hzChain::AddByte 21:!ci.eof()&&IsAlphanum(*ci); 22:hzChain::AddByte hzChain::Size 23:word.Size() 24:S hzToken::Init hzVect::Add 25:items 26:Return E_OK

Function body:

hzEcode TokenizeWords (hzVect<hzToken>& toks, hzChain& C)
{
   _hzfunc("TokenizeWords") ;
   chIter      ci ;
   hzChain     word ;
   hzToken     T ;
   hzString    S ;
   uint32_t    nLine ;
   toks.Clear() ;
   if (!C.Size())
       return E_NODATA ;
   for (ci = C ; !ci.eof() ;)
   {
       if (*ci <&eq; CHAR_SPACE)
           { ci++ ; continue ; }
       if (*ci == CHAR_DQUOTE)
       {
           S.Clear() ;
           word.Clear() ;
           nLine = ci.Line() ;
           for (ci++ ; !ci.eof() ; ci++)
           {
               if (*ci == CHAR_DQUOTE)
                   { ci++ ; break ; }
               word.AddByte(*ci) ;
           }
           if (word.Size())
           {
               S = word ;
               T.Init(S, nLine, TOKEN_ALPHANUM) ;
               toks.Add(T) ;
           }
           continue ;
       }
       if (ci == "/*")
       {
           for (ci += 2; !ci.eof() ; ci++)
           {
               if (ci == "*/")
                   { ci += 2; break ; }
           }
           continue ;
       }
       if (IsAlphanum(*ci))
       {
           S.Clear() ;
           word.Clear() ;
           nLine = ci.Line() ;
           word.AddByte(*ci) ;
           for (ci++ ; !ci.eof() && IsAlphanum(*ci) ; ci++)
               word.AddByte(*ci) ;
           if (word.Size())
           {
               S = word ;
               T.Init(S, nLine, TOKEN_ALPHANUM) ;
               toks.Add(T) ;
           }
           continue ;
       }
       ci++ ;
   }
   return E_OK ;
}