/
MacroNode.php
96 lines (68 loc) · 1.68 KB
/
MacroNode.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/**
* This file is part of the Latte (https://latte.nette.org)
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
*/
namespace Latte;
/**
* Macro element node.
*/
class MacroNode
{
use Strict;
const PREFIX_INNER = 'inner',
PREFIX_TAG = 'tag',
PREFIX_NONE = 'none';
/** @var IMacro */
public $macro;
/** @var string */
public $name;
/** @var bool */
public $isEmpty = FALSE;
/** @var string raw arguments */
public $args;
/** @var string raw modifier */
public $modifiers;
/** @var bool */
public $closing = FALSE;
/** @var bool has output? */
public $replaced;
/** @var MacroTokens */
public $tokenizer;
/** @var MacroNode */
public $parentNode;
/** @var string */
public $openingCode;
/** @var string */
public $closingCode;
/** @var string */
public $attrCode;
/** @var string */
public $content;
/** @var string */
public $innerContent;
/** @var \stdClass user data */
public $data;
/** @var HtmlNode closest HTML node */
public $htmlNode;
/** @var string indicates n:attribute macro and type of prefix (PREFIX_INNER, PREFIX_TAG, PREFIX_NONE) */
public $prefix;
/** @internal */
public $saved;
public function __construct(IMacro $macro, $name, $args = NULL, $modifiers = NULL, self $parentNode = NULL, HtmlNode $htmlNode = NULL, $prefix = NULL)
{
$this->macro = $macro;
$this->name = (string) $name;
$this->modifiers = (string) $modifiers;
$this->parentNode = $parentNode;
$this->htmlNode = $htmlNode;
$this->prefix = $prefix;
$this->data = new \stdClass;
$this->setArgs($args);
}
public function setArgs($args)
{
$this->args = (string) $args;
$this->tokenizer = new MacroTokens($this->args);
}
}