KiCad PCB EDA Suite
numEval::UTF8::uni_iter Class Reference

class uni_iter is a non-mutating iterator that walks through unicode code points in the UTF8 encoded string. More...

Public Member Functions

 uni_iter ()
 
 uni_iter (const uni_iter &o)
 
const uni_iteroperator++ ()
 pre-increment and return uni_iter at new position More...
 
uni_iter operator++ (int)
 post-increment and return uni_iter at initial position More...
 
unsigned operator-> () const
 return unicode at current position More...
 
unsigned operator* () const
 return unicode at current position More...
 
uni_iter operator- (int aVal) const
 
bool operator== (const uni_iter &other) const
 
bool operator!= (const uni_iter &other) const
 
bool operator< (const uni_iter &other) const
 Since the ++ operators advance more than one byte, this is your best loop termination test, < end(), not == end(). More...
 
bool operator<= (const uni_iter &other) const
 
bool operator> (const uni_iter &other) const
 
bool operator>= (const uni_iter &other) const
 

Private Member Functions

 uni_iter (const char *start)
 

Private Attributes

const unsigned char * it
 

Friends

class UTF8
 

Detailed Description

class uni_iter is a non-mutating iterator that walks through unicode code points in the UTF8 encoded string.

The normal ++(), ++(int), ->(), and *() operators are all supported for read only access and some return an unsigned holding the unicode character appropriate for the respective operator.

Definition at line 208 of file numeric_evaluator.cpp.

Constructor & Destructor Documentation

numEval::UTF8::uni_iter::uni_iter ( const char *  start)
inlineprivate

Definition at line 215 of file numeric_evaluator.cpp.

228  {
numEval::UTF8::uni_iter::uni_iter ( )
inline

Definition at line 223 of file numeric_evaluator.cpp.

228  {
numEval::UTF8::uni_iter::uni_iter ( const uni_iter o)
inline

Definition at line 228 of file numeric_evaluator.cpp.

References numEval::NUMERIC_EVALUATOR::TokenStat::input, numEval::NUMERIC_EVALUATOR::m_token, and numEval::NUMERIC_EVALUATOR::TokenStat::pos.

228  {
229  char ch = m_token.input[ m_token.pos ];
230 
231  if( ch == '"' )

Member Function Documentation

bool numEval::UTF8::uni_iter::operator!= ( const uni_iter other) const
inline
unsigned numEval::UTF8::uni_iter::operator* ( ) const
inline

return unicode at current position

Definition at line 260 of file numeric_evaluator.cpp.

260  {
261  m_token.pos += 4;
262  return Unit::Mil;
263  }
264 
265  return Unit::Invalid;
266  };
267 
const uni_iter& numEval::UTF8::uni_iter::operator++ ( )
inline

pre-increment and return uni_iter at new position

Definition at line 234 of file numeric_evaluator.cpp.

242  {
uni_iter numEval::UTF8::uni_iter::operator++ ( int  )
inline

post-increment and return uni_iter at initial position

Definition at line 241 of file numeric_evaluator.cpp.

242  {
243  m_token.pos += 2;
244  return Unit::Metric;
245  }
246 
247  if( sizeLeft >= 2 && ch == 'i' && cptr[ 1 ] == 'n' && !isalnum( cptr[ 2 ] ))
uni_iter numEval::UTF8::uni_iter::operator- ( int  aVal) const
inline

Definition at line 269 of file numeric_evaluator.cpp.

272 {
unsigned numEval::UTF8::uni_iter::operator-> ( ) const
inline

return unicode at current position

Definition at line 250 of file numeric_evaluator.cpp.

254  {
255  m_token.pos += 3;
256  return Unit::Mil;
257  }
bool numEval::UTF8::uni_iter::operator< ( const uni_iter other) const
inline

Since the ++ operators advance more than one byte, this is your best loop termination test, < end(), not == end().

Definition at line 276 of file numeric_evaluator.cpp.

284 {
bool numEval::UTF8::uni_iter::operator<= ( const uni_iter other) const
inline

Definition at line 277 of file numeric_evaluator.cpp.

284 {
bool numEval::UTF8::uni_iter::operator== ( const uni_iter other) const
inline

Definition at line 271 of file numeric_evaluator.cpp.

272 {
bool numEval::UTF8::uni_iter::operator> ( const uni_iter other) const
inline

Definition at line 278 of file numeric_evaluator.cpp.

284 {
bool numEval::UTF8::uni_iter::operator>= ( const uni_iter other) const
inline

Definition at line 279 of file numeric_evaluator.cpp.

284 {

Friends And Related Function Documentation

friend class UTF8
friend

Definition at line 210 of file numeric_evaluator.cpp.

Member Data Documentation

const unsigned char* numEval::UTF8::uni_iter::it
private

Definition at line 212 of file numeric_evaluator.cpp.


The documentation for this class was generated from the following file: