<?php
declare(strict_types=1);
namespace League\CommonMark\Util;
use League\CommonMark\Exception\IOException;
final class SpecReader
{
private function __construct()
{
}
public static function read(string $data): iterable
{
$data = \preg_replace('/\r\n?/', "\n", $data);
\assert($data !== null);
$data = \preg_replace('/<!-- END TESTS -->.*$/', '', $data);
\assert($data !== null);
\preg_match_all('/^`{32} (example ?\w*)\n([\s\S]*?)^\.\n([\s\S]*?)^`{32}$|^#{1,6} *(.*)$/m', $data, $matches, PREG_SET_ORDER);
$currentSection = 'Example';
$exampleNumber = 0;
foreach ($matches as $match) {
if (isset($match[4])) {
$currentSection = $match[4];
continue;