@@ -49,21 +49,22 @@ public static function install(Latte\Compiler $compiler)
4949 public function macroForm (MacroNode $ node , PhpWriter $ writer )
5050 {
5151 if ($ node ->modifiers ) {
52- throw new CompileException (" Modifiers are not allowed in { { $ node ->name } } " );
52+ throw new CompileException (' Modifiers are not allowed in ' . $ node ->getNotation () );
5353 }
5454 if ($ node ->prefix ) {
5555 throw new CompileException ('Did you mean <form n:name=...> ? ' );
5656 }
5757 $ name = $ node ->tokenizer ->fetchWord ();
5858 if ($ name === FALSE ) {
59- throw new CompileException (" Missing form name in { { $ node ->name } }. " );
59+ throw new CompileException (' Missing form name in ' . $ node ->getNotation () );
6060 }
6161 $ node ->replaced = true ;
6262 $ node ->tokenizer ->reset ();
6363 return $ writer ->write (
64- 'echo Nette\Bridges\FormsLatte\Runtime::renderFormBegin($form = $_form = $this->global->formsStack[] = '
64+ "/* line $ node ->startLine */ \n"
65+ . 'echo Nette\Bridges\FormsLatte\Runtime::renderFormBegin($form = $_form = $this->global->formsStack[] = '
6566 . ($ name [0 ] === '$ ' ? 'is_object(%node.word) ? %node.word : ' : '' )
66- . '$this->global->uiControl[%node.word], %node.array) '
67+ . '$this->global->uiControl[%node.word], %node.array); '
6768 );
6869 }
6970
@@ -74,17 +75,17 @@ public function macroForm(MacroNode $node, PhpWriter $writer)
7475 public function macroFormContainer (MacroNode $ node , PhpWriter $ writer )
7576 {
7677 if ($ node ->modifiers ) {
77- throw new CompileException (" Modifiers are not allowed in { { $ node ->name } } " );
78+ throw new CompileException (' Modifiers are not allowed in ' . $ node ->getNotation () );
7879 }
7980 $ name = $ node ->tokenizer ->fetchWord ();
8081 if ($ name === FALSE ) {
81- throw new CompileException (" Missing name in { { $ node ->name } }. " );
82+ throw new CompileException (' Missing name in ' . $ node ->getNotation () );
8283 }
8384 $ node ->tokenizer ->reset ();
8485 return $ writer ->write (
8586 '$this->global->formsStack[] = $formContainer = $_form = '
8687 . ($ name [0 ] === '$ ' ? 'is_object(%node.word) ? %node.word : ' : '' )
87- . 'end($this->global->formsStack)[%node.word] '
88+ . 'end($this->global->formsStack)[%node.word]; '
8889 );
8990 }
9091
@@ -95,11 +96,11 @@ public function macroFormContainer(MacroNode $node, PhpWriter $writer)
9596 public function macroLabel (MacroNode $ node , PhpWriter $ writer )
9697 {
9798 if ($ node ->modifiers ) {
98- throw new CompileException (" Modifiers are not allowed in { { $ node ->name } } " );
99+ throw new CompileException (' Modifiers are not allowed in ' . $ node ->getNotation () );
99100 }
100101 $ words = $ node ->tokenizer ->fetchWords ();
101102 if (!$ words ) {
102- throw new CompileException (" Missing name in { { $ node ->name } }. " );
103+ throw new CompileException (' Missing name in ' . $ node ->getNotation () );
103104 }
104105 $ node ->replaced = true ;
105106 $ name = array_shift ($ words );
@@ -131,18 +132,19 @@ public function macroLabelEnd(MacroNode $node, PhpWriter $writer)
131132 public function macroInput (MacroNode $ node , PhpWriter $ writer )
132133 {
133134 if ($ node ->modifiers ) {
134- throw new CompileException (" Modifiers are not allowed in { { $ node ->name } } " );
135+ throw new CompileException (' Modifiers are not allowed in ' . $ node ->getNotation () );
135136 }
136137 $ words = $ node ->tokenizer ->fetchWords ();
137138 if (!$ words ) {
138- throw new CompileException (" Missing name in { { $ node ->name } }. " );
139+ throw new CompileException (' Missing name in ' . $ node ->getNotation () );
139140 }
140141 $ node ->replaced = true ;
141142 $ name = array_shift ($ words );
142143 return $ writer ->write (
143144 ($ name [0 ] === '$ ' ? '$_input = is_object(%0.word) ? %0.word : end($this->global->formsStack)[%0.word]; echo $_input ' : 'echo end($this->global->formsStack)[%0.word] ' )
144145 . '->%1.raw '
145- . ($ node ->tokenizer ->isNext () ? '->addAttributes(%node.array) ' : '' ),
146+ . ($ node ->tokenizer ->isNext () ? '->addAttributes(%node.array) ' : '' )
147+ . " /* line $ node ->startLine */ " ,
146148 $ name ,
147149 $ words ? 'getControlPart( ' . implode (', ' , array_map ([$ writer , 'formatWord ' ], $ words )) . ') ' : 'getControl() '
148150 );
@@ -156,11 +158,11 @@ public function macroNameAttr(MacroNode $node, PhpWriter $writer)
156158 {
157159 $ words = $ node ->tokenizer ->fetchWords ();
158160 if (!$ words ) {
159- throw new CompileException (" Missing name in n: { $ node ->name } . " );
161+ throw new CompileException (' Missing name in ' . $ node ->getNotation () );
160162 }
161163 $ name = array_shift ($ words );
162164 $ tagName = strtolower ($ node ->htmlNode ->name );
163- $ node ->isEmpty = $ tagName === 'input ' ;
165+ $ node ->empty = $ tagName === 'input ' ;
164166
165167 if ($ tagName === 'form ' ) {
166168 return $ writer ->write (
@@ -198,13 +200,13 @@ public function macroNameEnd(MacroNode $node, PhpWriter $writer)
198200 {
199201 $ tagName = strtolower ($ node ->htmlNode ->name );
200202 if ($ tagName === 'form ' ) {
201- $ node ->innerContent .= '<?php echo Nette\Bridges\FormsLatte\Runtime::renderFormEnd(array_pop($this->global->formsStack), FALSE) ?> ' ;
203+ $ node ->innerContent .= '<?php echo Nette\Bridges\FormsLatte\Runtime::renderFormEnd(array_pop($this->global->formsStack), FALSE); ?> ' ;
202204 } elseif ($ tagName === 'label ' ) {
203- if ($ node ->htmlNode ->isEmpty ) {
205+ if ($ node ->htmlNode ->empty ) {
204206 $ node ->innerContent = "<?php echo \$_input->getLabelPart()->getHtml() ?> " ;
205207 }
206208 } elseif ($ tagName === 'button ' ) {
207- if ($ node ->htmlNode ->isEmpty ) {
209+ if ($ node ->htmlNode ->empty ) {
208210 $ node ->innerContent = '<?php echo htmlspecialchars($_input->caption) ?> ' ;
209211 }
210212 } else { // select, textarea
@@ -219,16 +221,16 @@ public function macroNameEnd(MacroNode $node, PhpWriter $writer)
219221 public function macroInputError (MacroNode $ node , PhpWriter $ writer )
220222 {
221223 if ($ node ->modifiers ) {
222- throw new CompileException (" Modifiers are not allowed in { { $ node ->name } } " );
224+ throw new CompileException (' Modifiers are not allowed in ' . $ node ->getNotation () );
223225 }
224226 $ name = $ node ->tokenizer ->fetchWord ();
225227 $ node ->replaced = true ;
226228 if (!$ name ) {
227- return $ writer ->write ('echo %escape($_input->getError()) ' );
229+ return $ writer ->write ('echo %escape($_input->getError()); ' );
228230 } elseif ($ name [0 ] === '$ ' ) {
229- return $ writer ->write ('$_input = is_object(%0.word) ? %0.word : end($this->global->formsStack)[%0.word]; echo %escape($_input->getError()) ' , $ name );
231+ return $ writer ->write ('$_input = is_object(%0.word) ? %0.word : end($this->global->formsStack)[%0.word]; echo %escape($_input->getError()); ' , $ name );
230232 } else {
231- return $ writer ->write ('echo %escape(end($this->global->formsStack)[%0.word]->getError()) ' , $ name );
233+ return $ writer ->write ('echo %escape(end($this->global->formsStack)[%0.word]->getError()); ' , $ name );
232234 }
233235 }
234236
0 commit comments