Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/translation/Extractor/PhpExtractor.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 1fec387a4317 |
children | af1871eacc83 |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
35 /** | 35 /** |
36 * The sequence that captures translation messages. | 36 * The sequence that captures translation messages. |
37 * | 37 * |
38 * @var array | 38 * @var array |
39 */ | 39 */ |
40 protected $sequences = array( | 40 protected $sequences = [ |
41 array( | 41 [ |
42 '->', | 42 '->', |
43 'trans', | 43 'trans', |
44 '(', | 44 '(', |
45 self::MESSAGE_TOKEN, | 45 self::MESSAGE_TOKEN, |
46 ',', | 46 ',', |
47 self::METHOD_ARGUMENTS_TOKEN, | 47 self::METHOD_ARGUMENTS_TOKEN, |
48 ',', | 48 ',', |
49 self::DOMAIN_TOKEN, | 49 self::DOMAIN_TOKEN, |
50 ), | 50 ], |
51 array( | 51 [ |
52 '->', | 52 '->', |
53 'transChoice', | 53 'transChoice', |
54 '(', | 54 '(', |
55 self::MESSAGE_TOKEN, | 55 self::MESSAGE_TOKEN, |
56 ',', | 56 ',', |
57 self::METHOD_ARGUMENTS_TOKEN, | 57 self::METHOD_ARGUMENTS_TOKEN, |
58 ',', | 58 ',', |
59 self::METHOD_ARGUMENTS_TOKEN, | 59 self::METHOD_ARGUMENTS_TOKEN, |
60 ',', | 60 ',', |
61 self::DOMAIN_TOKEN, | 61 self::DOMAIN_TOKEN, |
62 ), | 62 ], |
63 array( | 63 [ |
64 '->', | 64 '->', |
65 'trans', | 65 'trans', |
66 '(', | 66 '(', |
67 self::MESSAGE_TOKEN, | 67 self::MESSAGE_TOKEN, |
68 ), | 68 ], |
69 array( | 69 [ |
70 '->', | 70 '->', |
71 'transChoice', | 71 'transChoice', |
72 '(', | 72 '(', |
73 self::MESSAGE_TOKEN, | 73 self::MESSAGE_TOKEN, |
74 ), | 74 ], |
75 ); | 75 ]; |
76 | 76 |
77 /** | 77 /** |
78 * {@inheritdoc} | 78 * {@inheritdoc} |
79 */ | 79 */ |
80 public function extract($resource, MessageCatalogue $catalog) | 80 public function extract($resource, MessageCatalogue $catalog) |
154 */ | 154 */ |
155 private function getValue(\Iterator $tokenIterator) | 155 private function getValue(\Iterator $tokenIterator) |
156 { | 156 { |
157 $message = ''; | 157 $message = ''; |
158 $docToken = ''; | 158 $docToken = ''; |
159 $docPart = ''; | |
159 | 160 |
160 for (; $tokenIterator->valid(); $tokenIterator->next()) { | 161 for (; $tokenIterator->valid(); $tokenIterator->next()) { |
161 $t = $tokenIterator->current(); | 162 $t = $tokenIterator->current(); |
163 if ('.' === $t) { | |
164 // Concatenate with next token | |
165 continue; | |
166 } | |
162 if (!isset($t[1])) { | 167 if (!isset($t[1])) { |
163 break; | 168 break; |
164 } | 169 } |
165 | 170 |
166 switch ($t[0]) { | 171 switch ($t[0]) { |
167 case T_START_HEREDOC: | 172 case T_START_HEREDOC: |
168 $docToken = $t[1]; | 173 $docToken = $t[1]; |
169 break; | 174 break; |
170 case T_ENCAPSED_AND_WHITESPACE: | 175 case T_ENCAPSED_AND_WHITESPACE: |
171 case T_CONSTANT_ENCAPSED_STRING: | 176 case T_CONSTANT_ENCAPSED_STRING: |
172 $message .= $t[1]; | 177 if ('' === $docToken) { |
178 $message .= PhpStringTokenParser::parse($t[1]); | |
179 } else { | |
180 $docPart = $t[1]; | |
181 } | |
173 break; | 182 break; |
174 case T_END_HEREDOC: | 183 case T_END_HEREDOC: |
175 return PhpStringTokenParser::parseDocString($docToken, $message); | 184 $message .= PhpStringTokenParser::parseDocString($docToken, $docPart); |
185 $docToken = ''; | |
186 $docPart = ''; | |
187 break; | |
188 case T_WHITESPACE: | |
189 break; | |
176 default: | 190 default: |
177 break 2; | 191 break 2; |
178 } | 192 } |
179 } | |
180 | |
181 if ($message) { | |
182 $message = PhpStringTokenParser::parse($message); | |
183 } | 193 } |
184 | 194 |
185 return $message; | 195 return $message; |
186 } | 196 } |
187 | 197 |
208 $tokenIterator->next(); | 218 $tokenIterator->next(); |
209 continue; | 219 continue; |
210 } elseif (self::MESSAGE_TOKEN === $item) { | 220 } elseif (self::MESSAGE_TOKEN === $item) { |
211 $message = $this->getValue($tokenIterator); | 221 $message = $this->getValue($tokenIterator); |
212 | 222 |
213 if (count($sequence) === ($sequenceKey + 1)) { | 223 if (\count($sequence) === ($sequenceKey + 1)) { |
214 break; | 224 break; |
215 } | 225 } |
216 } elseif (self::METHOD_ARGUMENTS_TOKEN === $item) { | 226 } elseif (self::METHOD_ARGUMENTS_TOKEN === $item) { |
217 $this->skipMethodArgument($tokenIterator); | 227 $this->skipMethodArgument($tokenIterator); |
218 } elseif (self::DOMAIN_TOKEN === $item) { | 228 } elseif (self::DOMAIN_TOKEN === $item) { |