*/
bool QRegExpMatchState::testAnchor(int i, int a, const int *capBegin)
{
- int j;
-
#ifndef QT_NO_REGEXP_ANCHOR_ALT
if ((a & QRegExpEngine::Anchor_Alternation) != 0)
return testAnchor(i, eng->aa.at(a ^ QRegExpEngine::Anchor_Alternation).a, capBegin)
#ifndef QT_NO_REGEXP_LOOKAHEAD
if ((a & QRegExpEngine::Anchor_LookaheadMask) != 0) {
const QVector<QRegExpLookahead *> &ahead = eng->ahead;
- for (j = 0; j < ahead.size(); j++) {
+ for (int j = 0; j < ahead.size(); j++) {
if ((a & (QRegExpEngine::Anchor_FirstLookahead << j)) != 0) {
QRegExpMatchState matchState;
matchState.prepareForMatch(ahead[j]->eng);
#endif
#ifndef QT_NO_REGEXP_CAPTURE
#ifndef QT_NO_REGEXP_BACKREF
- for (j = 0; j < eng->nbrefs; j++) {
+ for (int j = 0; j < eng->nbrefs; j++) {
if ((a & (QRegExpEngine::Anchor_BackRef1Empty << j)) != 0) {
int i = eng->captureForOfficialCapture.at(j);
if (capBegin[i] != EmptyCapture)
int QRegExpEngine::getEscape()
{
-#ifndef QT_NO_REGEXP_ESCAPE
- const char tab[] = "afnrtv"; // no b, as \b means word boundary
- const char backTab[] = "\a\f\n\r\t\v";
- ushort low;
- int i;
-#endif
ushort val;
int prevCh = yyCh;
yyCh = getChar();
#ifndef QT_NO_REGEXP_ESCAPE
if ((prevCh & ~0xff) == 0) {
- const char *p = strchr(tab, prevCh);
- if (p)
- return Tok_Char | backTab[p - tab];
+ // no b, as \b means word boundary
+ switch (prevCh) {
+ case 'a':
+ return (Tok_Char | '\a');
+ case 'f':
+ return (Tok_Char | '\f');
+ case 'n':
+ return (Tok_Char | '\n');
+ case 'r':
+ return (Tok_Char | '\r');
+ case 't':
+ return (Tok_Char | '\t');
+ case 'v':
+ return (Tok_Char | '\v');
+ }
}
#endif
#ifndef QT_NO_REGEXP_ESCAPE
case '0': {
val = 0;
- for (i = 0; i < 3; i++) {
+ for (int i = 0; i < 3; i++) {
if (yyCh >= '0' && yyCh <= '7')
val = (val << 3) | (yyCh - '0');
else
#ifndef QT_NO_REGEXP_ESCAPE
case 'x': {
val = 0;
- for (i = 0; i < 4; i++) {
- low = QChar(yyCh).toLower().unicode();
+ for (int i = 0; i < 4; i++) {
+ ushort low = QChar(yyCh).toLower().unicode();
if (low >= '0' && low <= '9')
val = (val << 4) | (low - '0');
else if (low >= 'a' && low <= 'f')
int QRegExpEngine::getToken()
{
-#ifndef QT_NO_REGEXP_CCLASS
- ushort pendingCh = 0;
- bool charPending;
- bool rangePending;
- int tok;
-#endif
int prevCh = yyCh;
yyPos0 = yyPos - 1;
yyCharClass->setNegative(true);
yyCh = getChar();
}
- charPending = false;
- rangePending = false;
+ ushort pendingCh = 0;
+ bool charPending = false;
+ bool rangePending = false;
+ int tok;
do {
if (yyCh == '-' && charPending && !rangePending) {
rangePending = true;
#endif
// cleanup anchors
- int numStates = s.count();
- for (int i = 0; i < numStates; ++i) {
+ for (int i = 0; i < s.count(); ++i) {
QRegExpAutomatonState &state = s[i];
if (!state.anchors.isEmpty()) {
QMap<int, int>::iterator a = state.anchors.begin();
void QRegExpEngine::parseAtom(Box *box)
{
-#ifndef QT_NO_REGEXP_LOOKAHEAD
- QRegExpEngine *eng = Q_NULLPTR;
- bool neg;
- int len;
-#endif
-
if ((yyTok & Tok_Char) != 0) {
box->set(QChar(yyTok ^ Tok_Char));
} else {
#ifndef QT_NO_REGEXP_LOOKAHEAD
case Tok_PosLookahead:
case Tok_NegLookahead: {
- neg = (yyTok == Tok_NegLookahead);
- eng = new QRegExpEngine(cs, greedyQuantifiers);
- len = eng->parse(yyIn + yyPos - 1, yyLen - yyPos + 1);
+ bool neg = (yyTok == Tok_NegLookahead);
+ QRegExpEngine *eng = new QRegExpEngine(cs, greedyQuantifiers);
+ int len = eng->parse(yyIn + yyPos - 1, yyLen - yyPos + 1);
if (len >= 0)
skipChars(len);
else