1<?php
2
3/*
4 * This file is part of the league/commonmark package.
5 *
6 * (c) Colin O'Dell <colinodell@gmail.com>
7 *
8 * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js)
9 *  - (c) John MacFarlane
10 *
11 * For the full copyright and license information, please view the LICENSE
12 * file that was distributed with this source code.
13 */
14
15namespace League\CommonMark;
16
17use League\CommonMark\Block\Element\AbstractBlock;
18use League\CommonMark\Block\Element\AbstractStringContainerBlock;
19use League\CommonMark\Delimiter\DelimiterStack;
20use League\CommonMark\Reference\ReferenceMapInterface;
21
22class InlineParserContext
23{
24    /** @var AbstractStringContainerBlock */
25    private $container;
26    /** @var ReferenceMapInterface */
27    private $referenceMap;
28    /** @var Cursor */
29    private $cursor;
30    /** @var DelimiterStack */
31    private $delimiterStack;
32
33    public function __construct(AbstractStringContainerBlock $container, ReferenceMapInterface $referenceMap)
34    {
35        $this->referenceMap = $referenceMap;
36        $this->container = $container;
37        $this->cursor = new Cursor(\trim($container->getStringContent()));
38        $this->delimiterStack = new DelimiterStack();
39    }
40
41    public function getContainer(): AbstractBlock
42    {
43        return $this->container;
44    }
45
46    public function getReferenceMap(): ReferenceMapInterface
47    {
48        return $this->referenceMap;
49    }
50
51    public function getCursor(): Cursor
52    {
53        return $this->cursor;
54    }
55
56    public function getDelimiterStack(): DelimiterStack
57    {
58        return $this->delimiterStack;
59    }
60}
61