private function PoHeader::tokenizeFormula in Localization update 7.2
Tokenize the formula.
Parameters
string $formula: A string containing the arithmetic formula.
Return value
array List of arithmetic tokens identified in the formula.
1 call to PoHeader::tokenizeFormula()
- PoHeader::parseArithmetic in includes/
gettext/ PoHeader.php - Parses and sanitizes an arithmetic formula into a PHP expression.
File
- includes/
gettext/ PoHeader.php, line 365 - Definition of Drupal\Component\Gettext\PoHeader.
Class
- PoHeader
- Gettext PO header handler.
Code
private function tokenizeFormula($formula) {
$formula = str_replace(" ", "", $formula);
$tokens = array();
for ($i = 0; $i < strlen($formula); $i++) {
if (is_numeric($formula[$i])) {
$num = $formula[$i];
$j = $i + 1;
while ($j < strlen($formula) && is_numeric($formula[$j])) {
$num .= $formula[$j];
$j++;
}
$i = $j - 1;
$tokens[] = $num;
}
elseif ($pos = strpos(" =<>!&|", $formula[$i])) {
$next = $formula[$i + 1];
switch ($pos) {
case 1:
case 2:
case 3:
case 4:
if ($next == '=') {
$tokens[] = $formula[$i] . '=';
$i++;
}
else {
$tokens[] = $formula[$i];
}
break;
case 5:
if ($next == '&') {
$tokens[] = '&&';
$i++;
}
else {
$tokens[] = $formula[$i];
}
break;
case 6:
if ($next == '|') {
$tokens[] = '||';
$i++;
}
else {
$tokens[] = $formula[$i];
}
break;
}
}
else {
$tokens[] = $formula[$i];
}
}
return $tokens;
}