Return Type | Function name | Arguments |
---|---|---|
hzEcode | TokenizeBool | (hzVect<hzToken>&,hzChain&,) |
Declared and defined in file: hzTokens.cpp
Function Logic:
Function body:
hzEcode TokenizeBool (hzVect<hzToken>& toks, hzChain& C) { _hzfunc("hzTokenlist::TokenizeBool") ; hzChain W ; chIter ci ; hzToken T ; hzString S ; uint32_t nLine ; char tmp [4]; toks.Clear() ; if (!C.Size()) return E_NODATA ; ci = C ; nLine = 1; for (; !ci.eof() ;) { if (*ci == CHAR_NL) { nLine++ ; ci++ ; continue ; } if (IsBinary(*ci) || IsWhite(*ci)) { ci++ ; continue ; } if (ci == "/*") { for (ci += 2; !ci.eof() && ci != "*/" ; ci++) ; ci += 2; continue ; } if (ci == "//") { for (ci += 2; !ci.eof() && *ci != CHAR_NL ; ci++) ; ci++ ; continue ; } if (*ci == CHAR_DQUOTE) { for (ci++ ; !ci.eof() && *ci != CHAR_DQUOTE ; ci++) W.AddByte(*ci) ; S = W ; W.Clear() ; T.Init(S, ci.Line(), TOKEN_STRING) ; toks.Add(T) ; ci++ ; continue ; } if (_testHexnum(S, ci)) { T.Init(S, ci.Line(), TOKEN_STRING) ; toks.Add(T) ; continue ; } if (_testInteger(S, ci)) { T.Init(S, ci.Line(), TOKEN_INTEGER) ; toks.Add(T) ; continue ; } if (_testNumber(S, ci)) { T.Init(S, ci.Line(), TOKEN_NUMBER) ; toks.Add(T) ; continue ; } if (IsPunct(*ci)) { tmp[0]= *ci ; tmp[1]= 0; ci++ ; T.Init(tmp, nLine, TOKEN_SEPARATOR) ; toks.Add(T) ; continue ; } if (IsSymb(*ci)) { for (; !ci.eof() && IsSymb(*ci) ; ci++) W.AddByte(*ci) ; S = W ; W.Clear() ; T.Init(S, nLine, TOKEN_OPERATOR) ; toks.Add(T) ; continue ; } for (; !ci.eof() && IsAlphanum(*ci) ; ci++) W.AddByte(*ci) ; S = W ; W.Clear() ; T.Init(S, nLine, TOKEN_OPERATOR) ; toks.Add(T) ; } return E_OK ; }