diff options
Diffstat (limited to 'src/Token.php')
-rw-r--r-- | src/Token.php | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/src/Token.php b/src/Token.php index d534321..9659672 100644 --- a/src/Token.php +++ b/src/Token.php @@ -219,59 +219,59 @@ class Token public function extract() { switch ($this->type) { - case Token::TYPE_KEYWORD: - if (!($this->flags & Token::FLAG_KEYWORD_RESERVED)) { - // Unreserved keywords should stay the way they are because they - // might represent field names. - return $this->token; - } - return strtoupper($this->token); - case Token::TYPE_WHITESPACE: - return ' '; - case Token::TYPE_BOOL: - return strtoupper($this->token) === 'TRUE'; - case Token::TYPE_NUMBER: - $ret = str_replace('--', '', $this->token); // e.g. ---42 === -42 - if ($this->flags & Token::FLAG_NUMBER_HEX) { - if ($this->flags & Token::FLAG_NUMBER_NEGATIVE) { - $ret = str_replace('-', '', $this->token); - sscanf($ret, "%x", $ret); - $ret = -$ret; - } else { - sscanf($ret, "%x", $ret); + case Token::TYPE_KEYWORD: + if (!($this->flags & Token::FLAG_KEYWORD_RESERVED)) { + // Unreserved keywords should stay the way they are because they + // might represent field names. + return $this->token; } - } elseif (($this->flags & Token::FLAG_NUMBER_APPROXIMATE) + return strtoupper($this->token); + case Token::TYPE_WHITESPACE: + return ' '; + case Token::TYPE_BOOL: + return strtoupper($this->token) === 'TRUE'; + case Token::TYPE_NUMBER: + $ret = str_replace('--', '', $this->token); // e.g. ---42 === -42 + if ($this->flags & Token::FLAG_NUMBER_HEX) { + if ($this->flags & Token::FLAG_NUMBER_NEGATIVE) { + $ret = str_replace('-', '', $this->token); + sscanf($ret, "%x", $ret); + $ret = -$ret; + } else { + sscanf($ret, "%x", $ret); + } + } elseif (($this->flags & Token::FLAG_NUMBER_APPROXIMATE) || ($this->flags & Token::FLAG_NUMBER_FLOAT) - ) { - sscanf($ret, "%f", $ret); - } else { - sscanf($ret, "%d", $ret); - } - return $ret; - case Token::TYPE_STRING: - $quote = $this->token[0]; - $str = str_replace($quote . $quote, $quote, $this->token); - return mb_substr($str, 1, -1, 'UTF-8'); // trims quotes - case Token::TYPE_SYMBOL: - $str = $this->token; - if ((isset($str[0])) && ($str[0] === '@')) { - // `mb_strlen($str)` must be used instead of `null` because - // in PHP 5.3- the `null` parameter isn't handled correctly. - $str = mb_substr( - $str, - ((!empty($str[1])) && ($str[1] === '@')) ? 2 : 1, - mb_strlen($str), - 'UTF-8' - ); - } - if ((isset($str[0])) && (($str[0] === '`') + ) { + sscanf($ret, "%f", $ret); + } else { + sscanf($ret, "%d", $ret); + } + return $ret; + case Token::TYPE_STRING: + $quote = $this->token[0]; + $str = str_replace($quote . $quote, $quote, $this->token); + return mb_substr($str, 1, -1, 'UTF-8'); // trims quotes + case Token::TYPE_SYMBOL: + $str = $this->token; + if ((isset($str[0])) && ($str[0] === '@')) { + // `mb_strlen($str)` must be used instead of `null` because + // in PHP 5.3- the `null` parameter isn't handled correctly. + $str = mb_substr( + $str, + ((!empty($str[1])) && ($str[1] === '@')) ? 2 : 1, + mb_strlen($str), + 'UTF-8' + ); + } + if ((isset($str[0])) && (($str[0] === '`') || ($str[0] === '"') || ($str[0] === '\'')) - ) { - $quote = $str[0]; - $str = str_replace($quote . $quote, $quote, $str); - $str = mb_substr($str, 1, -1, 'UTF-8'); - } - return $str; + ) { + $quote = $str[0]; + $str = str_replace($quote . $quote, $quote, $str); + $str = mb_substr($str, 1, -1, 'UTF-8'); + } + return $str; } return $this->token; } |