Procházet zdrojové kódy

add |= operator

master
Martin Dørum před 5 roky
rodič
revize
1b1fa101f6
2 změnil soubory, kde provedl 33 přidání a 1 odebrání
  1. 32
    1
      src/BXParser.cc
  2. 1
    0
      src/BXParser.h

+ 32
- 1
src/BXParser.cc Zobrazit soubor

skip(); // '=' skip(); // '='
skip(); // '+' skip(); // '+'
return Operator::EQUALS_PLUS; return Operator::EQUALS_PLUS;
} else if (peek() == '|' && ch2 == '|') {
skip(); // '|'
skip(); // '='
return Operator::BAR_EQUALS;
} }


return Operator::NONE; return Operator::NONE;
break; break;


default: default:
if (ch == ':' && peek(2) == '=')
int ch2 = peek(2);
if (
(ch == ':' && ch2 == '=') ||
(ch == '+' && ch2 == '=') ||
(ch == '=' && ch2 == '+') ||
(ch == '|' && ch2 == '=')) {
return success; return success;
}


content.push_back(get()); content.push_back(get());
success = true; success = true;
values.clear(); values.clear();
break; break;


case Operator::BAR_EQUALS:
{
auto &vec = vars[key];
for (size_t i = 0; i < vec.size(); ++i) {
bool exists = false;
for (auto &val: values) {
if (val == vec[i]) {
exists = true;
break;
}
}

if (!exists) {
values.push_back(std::move(vec[i]));
}
}
vec = std::move(values);
}
values.clear();
break;

case Operator::NONE: case Operator::NONE:
break; break;
} }

+ 1
- 0
src/BXParser.h Zobrazit soubor

COLON_EQUALS, COLON_EQUALS,
PLUS_EQUALS, PLUS_EQUALS,
EQUALS_PLUS, EQUALS_PLUS,
BAR_EQUALS,
NONE, NONE,
}; };



Načítá se…
Zrušit
Uložit