91 $this->htmlDefinition =
$config->getHTMLDefinition();
96 if ($result !==
false)
return $result;
97 $this->currentNesting =& $context->get(
'CurrentNesting');
98 $this->inputTokens =& $context->get(
'InputTokens');
99 $this->inputIndex =& $context->get(
'InputIndex');
112 $def =
$config->getHTMLDefinition();
113 foreach ($this->needed as $element => $attributes) {
114 if (is_int($element)) $element = $attributes;
115 if (!isset($def->info[$element]))
return $element;
116 if (!is_array($attributes))
continue;
117 foreach ($attributes as
$name) {
118 if (!isset($def->info[$element]->attr[$name]))
return "$element.$name";
130 if (!empty($this->currentNesting)) {
131 $parent_token = array_pop($this->currentNesting);
132 $this->currentNesting[] = $parent_token;
133 $parent = $this->htmlDefinition->info[$parent_token->name];
135 $parent = $this->htmlDefinition->info_parent_def;
137 if (!isset($parent->child->elements[
$name]) || isset($parent->excludes[
$name])) {
141 for ($i = count($this->currentNesting) - 2; $i >= 0; $i--) {
142 $node = $this->currentNesting[$i];
143 $def = $this->htmlDefinition->info[$node->name];
144 if (isset($def->excludes[
$name]))
return false;
158 if ($i === null) $i = $this->inputIndex + 1;
160 if (!isset($this->inputTokens[$i]))
return false;
161 $current = $this->inputTokens[$i];
171 $result = $this->
forward($i, $current);
172 if (!$result)
return false;
173 if ($nesting === null) $nesting = 0;
176 if ($nesting <= 0)
return false;
191 if ($i === null) $i = $this->inputIndex - 1;
193 if ($i < 0)
return false;
194 $current = $this->inputTokens[$i];
209 $current = $this->inputTokens[$i];