public static function parse($file, $target, $included = false)
{
if (in_array($file, static::$stack)) {
throw new InfiniteRecursion();
}
static::$stack[] = $file;
$parser = new static($file, $target, $included);
array_pop(static::$stack);
return $parser;
}