+const char *CYString::Word() const {
+ if (size_ == 0 || !WordStartRange_[value_[0]])
+ return NULL;
+ for (size_t i(1); i != size_; ++i)
+ if (!WordEndRange_[value_[i]])
+ return NULL;
+ const char *value(Value());
+ // XXX: we should probably include the full ECMAScript3+5 list.
+ static const char *reserveds[] = {"class", "const", "enum", "export", "extends", "import", "super", NULL};
+ for (const char **reserved(reserveds); *reserved != NULL; ++reserved)
+ if (strcmp(*reserved, value) == 0)
+ return NULL;
+ return value;
+}
+