V8 Project
v8::internal::DateParser::DateStringTokenizer< Char > Class Template Reference
+ Collaboration diagram for v8::internal::DateParser::DateStringTokenizer< Char >:

Public Member Functions

 DateStringTokenizer (InputReader< Char > *in)
 
DateToken Next ()
 
DateToken Peek ()
 
bool SkipSymbol (char symbol)
 

Private Member Functions

DateToken Scan ()
 

Private Attributes

InputReader< Char > * in_
 
DateToken next_
 

Detailed Description

template<typename Char>
class v8::internal::DateParser::DateStringTokenizer< Char >

Definition at line 235 of file dateparser.h.

Constructor & Destructor Documentation

◆ DateStringTokenizer()

template<typename Char >
v8::internal::DateParser::DateStringTokenizer< Char >::DateStringTokenizer ( InputReader< Char > *  in)
inlineexplicit

Member Function Documentation

◆ Next()

template<typename Char >
DateToken v8::internal::DateParser::DateStringTokenizer< Char >::Next ( )
inline

Definition at line 239 of file dateparser.h.

239  {
240  DateToken result = next_;
241  next_ = Scan();
242  return result;
243  }

References v8::internal::DateParser::DateStringTokenizer< Char >::next_, and v8::internal::DateParser::DateStringTokenizer< Char >::Scan().

Referenced by v8::internal::DateParser::Parse(), and v8::internal::DateParser::ParseES5DateTime().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Peek()

template<typename Char >
DateToken v8::internal::DateParser::DateStringTokenizer< Char >::Peek ( )
inline

Definition at line 245 of file dateparser.h.

245  {
246  return next_;
247  }

References v8::internal::DateParser::DateStringTokenizer< Char >::next_.

Referenced by v8::internal::DateParser::Parse(), and v8::internal::DateParser::ParseES5DateTime().

+ Here is the caller graph for this function:

◆ Scan()

template<typename Char >
DateParser::DateToken v8::internal::DateParser::DateStringTokenizer< CharType >::Scan ( )
private

Definition at line 164 of file dateparser-inl.h.

164  {
165  int pre_pos = in_->position();
166  if (in_->IsEnd()) return DateToken::EndOfInput();
167  if (in_->IsAsciiDigit()) {
168  int n = in_->ReadUnsignedNumeral();
169  int length = in_->position() - pre_pos;
170  return DateToken::Number(n, length);
171  }
172  if (in_->Skip(':')) return DateToken::Symbol(':');
173  if (in_->Skip('-')) return DateToken::Symbol('-');
174  if (in_->Skip('+')) return DateToken::Symbol('+');
175  if (in_->Skip('.')) return DateToken::Symbol('.');
176  if (in_->Skip(')')) return DateToken::Symbol(')');
177  if (in_->IsAsciiAlphaOrAbove()) {
179  uint32_t buffer[3] = {0, 0, 0};
180  int length = in_->ReadWord(buffer, 3);
181  int index = KeywordTable::Lookup(buffer, length);
183  KeywordTable::GetValue(index),
184  length);
185  }
186  if (in_->SkipWhiteSpace()) {
187  return DateToken::WhiteSpace(in_->position() - pre_pos);
188  }
189  if (in_->SkipParentheses()) {
190  return DateToken::Unknown();
191  }
192  in_->Next();
193  return DateToken::Unknown();
194 }
static int Lookup(const uint32_t *pre, int len)
Definition: dateparser.cc:140
static KeywordType GetType(int i)
Definition: dateparser.h:273
#define DCHECK(condition)
Definition: logging.h:205
static DateToken Symbol(char symbol)
Definition: dateparser.h:198
static DateToken Number(int value, int length)
Definition: dateparser.h:195
static DateToken Keyword(KeywordType tag, int value, int length)
Definition: dateparser.h:192
static DateToken WhiteSpace(int length)
Definition: dateparser.h:204

References DCHECK.

Referenced by v8::internal::DateParser::DateStringTokenizer< Char >::Next(), and v8::internal::DateParser::DateStringTokenizer< Char >::SkipSymbol().

+ Here is the caller graph for this function:

◆ SkipSymbol()

template<typename Char >
bool v8::internal::DateParser::DateStringTokenizer< Char >::SkipSymbol ( char  symbol)
inline

Definition at line 248 of file dateparser.h.

248  {
249  if (next_.IsSymbol(symbol)) {
250  next_ = Scan();
251  return true;
252  }
253  return false;
254  }

References v8::internal::DateParser::DateToken::IsSymbol(), v8::internal::DateParser::DateStringTokenizer< Char >::next_, and v8::internal::DateParser::DateStringTokenizer< Char >::Scan().

Referenced by v8::internal::DateParser::Parse(), and v8::internal::DateParser::ParseES5DateTime().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ in_

template<typename Char >
InputReader<Char>* v8::internal::DateParser::DateStringTokenizer< Char >::in_
private

Definition at line 259 of file dateparser.h.

◆ next_


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