protected function filter(Token $token)
{
if ($token->type === Token::MACRO_TAG && $token->name === '/syntax') {
$this->setSyntax($this->defaultSyntax);
$token->type = Token::COMMENT;
} elseif ($token->type === Token::MACRO_TAG && $token->name === 'syntax') {
$this->setSyntax($token->value);
$token->type = Token::COMMENT;
} elseif ($token->type === Token::HTML_ATTRIBUTE_BEGIN && $token->name === 'n:syntax') {
$this->setSyntax($token->value);
$this->syntaxEndTag = $this->lastHtmlTag;
$this->syntaxEndLevel = 1;
$token->type = Token::COMMENT;
} elseif ($token->type === Token::HTML_TAG_BEGIN && $this->lastHtmlTag === $this->syntaxEndTag) {
$this->syntaxEndLevel++;
} elseif ($token->type === Token::HTML_TAG_END && $this->lastHtmlTag === '/' . $this->syntaxEndTag && --$this->syntaxEndLevel === 0) {
$this->setSyntax($this->defaultSyntax);
} elseif ($token->type === Token::MACRO_TAG && $token->name === 'contentType') {
if (strpos($token->value, 'html') !== FALSE) {
$this->setContentType(self::CONTENT_HTML);
} elseif (strpos($token->value, 'xml') !== FALSE) {
$this->setContentType(self::CONTENT_XML);
} else {
$this->setContentType(self::CONTENT_TEXT);
}
}
}