+
+ switch (token) {
+ case tk::_in_:
+ if (driver.in_.top())
+ token = tk::_in__;
+ break;
+
+ case tk::_return_:
+ if (driver.return_.top())
+ token = tk::_return__;
+ break;
+
+ case tk::_yield_:
+ if (driver.yield_.top())
+ token = tk::_yield__;
+ break;
+
+ case tk::EqualRight:
+ if (driver.newline_ == CYDriver::NewLineLast)
+ token = tk::EqualRight_;
+ break;
+
+ case tk::HyphenHyphen:
+ if (driver.newline_ == CYDriver::NewLineLast)
+ token = tk::HyphenHyphen_;
+ break;
+
+ case tk::NewLine:
+ driver.newline_ = CYDriver::NewLineHere;
+ if (!driver.next_)
+ goto lex;
+ break;
+
+ case tk::OpenBrace:
+ if (driver.newline_ == CYDriver::NewLineLast)
+ token = tk::OpenBrace_;
+ break;
+
+ case tk::PlusPlus:
+ if (driver.newline_ == CYDriver::NewLineLast)
+ token = tk::PlusPlus_;
+ break;
+ }
+
+ driver.next_ = false;