public function getToken($buffer, $offset)
{
if ("'" === substr($buffer, $offset, 1)) {
return new Scanner\Token(Scanner\Token::SINGLEQUOTE_STRING_END, "'", $offset);
} else {
$tokenString = substr($buffer, $offset, 2);
if ("\\'" == $tokenString || '\\\\' == $tokenString) {
return new Scanner\Token(Scanner\Token::STRING_ESCAPED_CHARACTER, $tokenString, $offset);
} else {
$tokenString = $this->matchPattern($buffer, $offset, '([^\\\\\']+)S');
if (!empty($tokenString)) {
return new Scanner\Token(Scanner\Token::STRING_CHARACTERS, $tokenString, $offset);
}
}
}
return NULL;
}