Changeset View
Changeset View
Standalone View
Standalone View
parser/phplexer.cpp
Show First 20 Lines • Show All 795 Lines • ▼ Show 20 Line(s) | 795 | } else if (name.compare(QLatin1String("namespace"), Qt::CaseInsensitive) == 0) { | |||
---|---|---|---|---|---|
796 | token = Parser::Token_NAMESPACE; | 796 | token = Parser::Token_NAMESPACE; | ||
797 | } else if (name.compare(QLatin1String("__namespace__"), Qt::CaseInsensitive) == 0) { | 797 | } else if (name.compare(QLatin1String("__namespace__"), Qt::CaseInsensitive) == 0) { | ||
798 | token = Parser::Token_NAMESPACE_C; | 798 | token = Parser::Token_NAMESPACE_C; | ||
799 | } else if (name.compare(QLatin1String("callable"), Qt::CaseInsensitive) == 0) { | 799 | } else if (name.compare(QLatin1String("callable"), Qt::CaseInsensitive) == 0) { | ||
800 | token = Parser::Token_CALLABLE; | 800 | token = Parser::Token_CALLABLE; | ||
801 | } else if (name.compare(QLatin1String("void"), Qt::CaseInsensitive) == 0) { | 801 | } else if (name.compare(QLatin1String("void"), Qt::CaseInsensitive) == 0) { | ||
802 | token = Parser::Token_VOID; | 802 | token = Parser::Token_VOID; | ||
803 | } else if (name.compare(QLatin1String("yield"), Qt::CaseInsensitive) == 0) { | 803 | } else if (name.compare(QLatin1String("yield"), Qt::CaseInsensitive) == 0) { | ||
804 | const QChar* lookAhead = it; | ||||
805 | int pos = m_curpos; | ||||
806 | while (pos < m_contentSize && lookAhead->isSpace()) { | ||||
807 | ++lookAhead; | ||||
808 | ++pos; | ||||
809 | } | ||||
810 | | ||||
811 | auto nextToken = QString(); | ||||
zhigalin: This smells like spaghetti, are you sure? how about something like
```
auto… | |||||
pprkut: Minor adjustments, but it seems to work. Thanks! :) | |||||
812 | nextToken += * lookAhead; | ||||
813 | nextToken += * ++lookAhead; | ||||
814 | nextToken += * ++lookAhead; | ||||
815 | nextToken += * ++lookAhead; | ||||
816 | if (pos + 4 < m_contentSize && nextToken == QStringLiteral("from")) { | ||||
817 | m_curpos = pos + 4; | ||||
818 | token = Parser::Token_YIELD_FROM; | ||||
819 | } else { | ||||
804 | token = Parser::Token_YIELD; | 820 | token = Parser::Token_YIELD; | ||
821 | } | ||||
805 | } else { | 822 | } else { | ||
806 | token = Parser::Token_STRING; | 823 | token = Parser::Token_STRING; | ||
807 | } | 824 | } | ||
808 | } | 825 | } | ||
809 | break; | 826 | break; | ||
810 | } | 827 | } | ||
811 | 828 | | |||
812 | case StringVariable: | 829 | case StringVariable: | ||
▲ Show 20 Lines • Show All 242 Lines • Show Last 20 Lines |
This smells like spaghetti, are you sure? how about something like
(example code, not sure it will work)