| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | TokenizeWords | (hzVect<hzToken>&,hzChain&,) |
Declared and defined in file: hzTokens.cpp
Function Logic:
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 ;
}