comparison vendor/nikic/php-parser/grammar/rebuildParsers.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 5fb285c0d0e3
children
comparison
equal deleted inserted replaced
16:c2387f117808 17:129ea1e6d783
164 164
165 return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' 165 return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {'
166 . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; 166 . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }';
167 } 167 }
168 168
169 if ('parseEncapsedDoc' == $name) {
170 assertArgs(2, $args, $name);
171
172 return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {'
173 . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, ' . $args[1] . '); } }'
174 . ' $s->value = preg_replace(\'~(\r\n|\n|\r)\z~\', \'\', $s->value);'
175 . ' if (\'\' === $s->value) array_pop(' . $args[0] . ');';
176 }
177
178 if ('makeNop' == $name) { 169 if ('makeNop' == $name) {
179 assertArgs(3, $args, $name); 170 assertArgs(3, $args, $name);
180 171
181 return '$startAttributes = ' . $args[1] . ';' 172 return '$startAttributes = ' . $args[1] . ';'
182 . ' if (isset($startAttributes[\'comments\']))' 173 . ' if (isset($startAttributes[\'comments\']))'
190 return '(' . $args[0] . '[0] === "\'" || (' . $args[0] . '[1] === "\'" && ' 181 return '(' . $args[0] . '[0] === "\'" || (' . $args[0] . '[1] === "\'" && '
191 . '(' . $args[0] . '[0] === \'b\' || ' . $args[0] . '[0] === \'B\')) ' 182 . '(' . $args[0] . '[0] === \'b\' || ' . $args[0] . '[0] === \'B\')) '
192 . '? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED)'; 183 . '? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED)';
193 } 184 }
194 185
195 if ('setDocStringAttrs' == $name) {
196 assertArgs(2, $args, $name);
197
198 return $args[0] . '[\'kind\'] = strpos(' . $args[1] . ', "\'") === false '
199 . '? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; '
200 . 'preg_match(\'/\A[bB]?<<<[ \t]*[\\\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\\\'"]?(?:\r\n|\n|\r)\z/\', ' . $args[1] . ', $matches); '
201 . $args[0] . '[\'docLabel\'] = $matches[1];';
202 }
203
204 if ('prependLeadingComments' == $name) { 186 if ('prependLeadingComments' == $name) {
205 assertArgs(1, $args, $name); 187 assertArgs(1, $args, $name);
206 188
207 return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; ' 189 return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; '
208 . 'if (!empty($attrs[\'comments\'])) {' 190 . 'if (!empty($attrs[\'comments\'])) {'