We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
@@ -63,14 +63,14 @@ discard block |
||
63 | 63 | * @param string $url The TeX pattern file URL. |
64 | 64 | * @param string $language A human-readable language name. |
65 | 65 | */ |
66 | - public function __construct( $url, $language ) { |
|
66 | + public function __construct($url, $language) { |
|
67 | 67 | $this->url = $url; |
68 | 68 | $this->language = $language; |
69 | 69 | |
70 | - $this->word_characters = join( [ |
|
70 | + $this->word_characters = join([ |
|
71 | 71 | "\w.'ʼ᾽ʼ᾿’", |
72 | - Strings::uchr( 8205, 8204, 768, 769, 771, 772, 775, 776, 784, 803, 805, 814, 817 ), |
|
73 | - '\p{Devanagari}' . Strings::uchr( 2385, 2386 ), |
|
72 | + Strings::uchr(8205, 8204, 768, 769, 771, 772, 775, 776, 784, 803, 805, 814, 817), |
|
73 | + '\p{Devanagari}' . Strings::uchr(2385, 2386), |
|
74 | 74 | '\p{Bengali}', |
75 | 75 | '\p{Gujarati}', |
76 | 76 | '\p{Gurmukhi}', |
@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | '\p{Malayalam}', |
82 | 82 | '\p{Thai}', |
83 | 83 | '-', |
84 | - ] ); |
|
84 | + ]); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
@@ -90,8 +90,8 @@ discard block |
||
90 | 90 | * @param string $pattern TeX hyphenation pattern. |
91 | 91 | * @return string |
92 | 92 | */ |
93 | - protected function get_segment( $pattern ) { |
|
94 | - return preg_replace( '/[0-9]/', '', str_replace( '.', '_', $pattern ) ); |
|
93 | + protected function get_segment($pattern) { |
|
94 | + return preg_replace('/[0-9]/', '', str_replace('.', '_', $pattern)); |
|
95 | 95 | } |
96 | 96 | |
97 | 97 | /** |
@@ -101,31 +101,31 @@ discard block |
||
101 | 101 | * |
102 | 102 | * @return string|null Script exits on error. |
103 | 103 | */ |
104 | - protected function get_sequence( $pattern ) { |
|
105 | - $characters = Strings::mb_str_split( str_replace( '.', '_', $pattern ) ); |
|
104 | + protected function get_sequence($pattern) { |
|
105 | + $characters = Strings::mb_str_split(str_replace('.', '_', $pattern)); |
|
106 | 106 | $result = []; |
107 | 107 | |
108 | - foreach ( $characters as $index => $chr ) { |
|
109 | - if ( ctype_digit( $chr ) ) { |
|
108 | + foreach ($characters as $index => $chr) { |
|
109 | + if (ctype_digit($chr)) { |
|
110 | 110 | $result[] = $chr; |
111 | 111 | } else { |
112 | - if ( ! isset( $characters[ $index - 1 ] ) || ! ctype_digit( $characters[ $index - 1 ] ) ) { |
|
112 | + if ( ! isset($characters[$index - 1]) || ! ctype_digit($characters[$index - 1])) { |
|
113 | 113 | $result[] = '0'; |
114 | 114 | } |
115 | 115 | |
116 | - if ( ! isset( $characters[ $index + 1 ] ) && ! ctype_digit( $characters[ $index ] ) ) { |
|
116 | + if ( ! isset($characters[$index + 1]) && ! ctype_digit($characters[$index])) { |
|
117 | 117 | $result[] = '0'; |
118 | 118 | } |
119 | 119 | } |
120 | 120 | } |
121 | 121 | |
122 | 122 | // Do some error checking. |
123 | - $count = count( $result ); |
|
124 | - $count_seg = mb_strlen( $this->get_segment( $pattern ) ); |
|
125 | - $sequence = implode( $result ); |
|
123 | + $count = count($result); |
|
124 | + $count_seg = mb_strlen($this->get_segment($pattern)); |
|
125 | + $sequence = implode($result); |
|
126 | 126 | |
127 | - if ( $count !== $count_seg + 1 ) { |
|
128 | - trigger_error( "Invalid segment length $count for pattern $pattern (result sequence $sequence)", E_USER_ERROR ); // @codingStandardsIgnoreLine |
|
127 | + if ($count !== $count_seg + 1) { |
|
128 | + trigger_error("Invalid segment length $count for pattern $pattern (result sequence $sequence)", E_USER_ERROR); // @codingStandardsIgnoreLine |
|
129 | 129 | |
130 | 130 | die( -3000 ); |
131 | 131 | } |
@@ -146,32 +146,32 @@ discard block |
||
146 | 146 | * |
147 | 147 | * @return string |
148 | 148 | */ |
149 | - protected function format_results( array $patterns, array $exceptions, array $comments ) { |
|
149 | + protected function format_results(array $patterns, array $exceptions, array $comments) { |
|
150 | 150 | $pattern_mapping = []; |
151 | 151 | |
152 | - foreach ( $patterns as $pattern ) { |
|
153 | - $segment = $this->get_segment( $pattern ); |
|
152 | + foreach ($patterns as $pattern) { |
|
153 | + $segment = $this->get_segment($pattern); |
|
154 | 154 | |
155 | - if ( ! isset( $pattern_mapping[ $segment ] ) ) { |
|
156 | - $pattern_mapping[ $segment ] = $this->get_sequence( $pattern ); |
|
155 | + if ( ! isset($pattern_mapping[$segment])) { |
|
156 | + $pattern_mapping[$segment] = $this->get_sequence($pattern); |
|
157 | 157 | } |
158 | 158 | } |
159 | 159 | |
160 | 160 | // Produce a nice exceptions mapping. |
161 | 161 | $json_exceptions = []; |
162 | - foreach ( $exceptions as $exception ) { |
|
163 | - $json_exceptions[ mb_strtolower( str_replace( '-', '', $exception ) ) ] = mb_strtolower( $exception ); |
|
162 | + foreach ($exceptions as $exception) { |
|
163 | + $json_exceptions[mb_strtolower(str_replace('-', '', $exception))] = mb_strtolower($exception); |
|
164 | 164 | } |
165 | 165 | |
166 | 166 | $json_results = [ |
167 | 167 | 'language' => $this->language, |
168 | 168 | 'source_url' => $this->url, |
169 | - 'copyright' => array_map( 'rtrim', $comments ), |
|
169 | + 'copyright' => array_map('rtrim', $comments), |
|
170 | 170 | 'exceptions' => $json_exceptions, |
171 | 171 | 'patterns' => $pattern_mapping, |
172 | 172 | ]; |
173 | 173 | |
174 | - return json_encode( $json_results, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE ); |
|
174 | + return json_encode($json_results, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | /** |
@@ -188,27 +188,27 @@ discard block |
||
188 | 188 | * |
189 | 189 | * @return bool |
190 | 190 | */ |
191 | - protected function match_exceptions( $line, array &$exceptions ) { |
|
192 | - if ( preg_match( '/^\s*([\w-]+)\s*}\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
191 | + protected function match_exceptions($line, array &$exceptions) { |
|
192 | + if (preg_match('/^\s*([\w-]+)\s*}\s*(?:%.*)?$/u', $line, $matches)) { |
|
193 | 193 | $exceptions[] = $matches[1]; |
194 | 194 | return false; |
195 | - } if ( preg_match( '/^\s*((?:[\w-]+\s*)+)\s*}\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
196 | - $this->match_exceptions( $matches[1], $exceptions ); |
|
195 | + } if (preg_match('/^\s*((?:[\w-]+\s*)+)\s*}\s*(?:%.*)?$/u', $line, $matches)) { |
|
196 | + $this->match_exceptions($matches[1], $exceptions); |
|
197 | 197 | return false; |
198 | - } elseif ( preg_match( '/^\s*}\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
198 | + } elseif (preg_match('/^\s*}\s*(?:%.*)?$/u', $line, $matches)) { |
|
199 | 199 | return false; |
200 | - } elseif ( preg_match( '/^\s*([\w-]+)\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
200 | + } elseif (preg_match('/^\s*([\w-]+)\s*(?:%.*)?$/u', $line, $matches)) { |
|
201 | 201 | $exceptions[] = $matches[1]; |
202 | - } elseif ( preg_match( '/^\s*((?:[\w-]+\s*)+)(?:%.*)?$/u', $line, $matches ) ) { |
|
202 | + } elseif (preg_match('/^\s*((?:[\w-]+\s*)+)(?:%.*)?$/u', $line, $matches)) { |
|
203 | 203 | // Sometimes there are multiple exceptions on a single line. |
204 | - foreach ( self::split_at_whitespace( $matches[1] ) as $match ) { |
|
204 | + foreach (self::split_at_whitespace($matches[1]) as $match) { |
|
205 | 205 | $exceptions[] = $match; |
206 | 206 | } |
207 | - } elseif ( preg_match( '/^\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
207 | + } elseif (preg_match('/^\s*(?:%.*)?$/u', $line, $matches)) { |
|
208 | 208 | // Ignore comments and whitespace in exceptions. |
209 | 209 | return true; |
210 | 210 | } else { |
211 | - throw new RangeException( "Error: unknown exception line $line\n" ); |
|
211 | + throw new RangeException("Error: unknown exception line $line\n"); |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | return true; |
@@ -224,24 +224,24 @@ discard block |
||
224 | 224 | * |
225 | 225 | * @return bool |
226 | 226 | */ |
227 | - protected function match_patterns( $line, array &$patterns ) { |
|
228 | - if ( preg_match( '/^\s*([' . $this->word_characters . ']+)\s*}\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
227 | + protected function match_patterns($line, array &$patterns) { |
|
228 | + if (preg_match('/^\s*([' . $this->word_characters . ']+)\s*}\s*(?:%.*)?$/u', $line, $matches)) { |
|
229 | 229 | $patterns[] = $matches[1]; |
230 | 230 | return false; |
231 | - } elseif ( preg_match( '/^\s*}\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
231 | + } elseif (preg_match('/^\s*}\s*(?:%.*)?$/u', $line, $matches)) { |
|
232 | 232 | return false; |
233 | - } elseif ( preg_match( '/^\s*([' . $this->word_characters . ']+)\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
233 | + } elseif (preg_match('/^\s*([' . $this->word_characters . ']+)\s*(?:%.*)?$/u', $line, $matches)) { |
|
234 | 234 | $patterns[] = $matches[1]; |
235 | - } elseif ( preg_match( '/^\s*((?:[' . $this->word_characters . ']+\s*)+)(?:%.*)?$/u', $line, $matches ) ) { |
|
235 | + } elseif (preg_match('/^\s*((?:[' . $this->word_characters . ']+\s*)+)(?:%.*)?$/u', $line, $matches)) { |
|
236 | 236 | // Sometimes there are multiple patterns on a single line. |
237 | - foreach ( self::split_at_whitespace( $matches[1] ) as $match ) { |
|
237 | + foreach (self::split_at_whitespace($matches[1]) as $match) { |
|
238 | 238 | $patterns[] = $match; |
239 | 239 | } |
240 | - } elseif ( preg_match( '/^\s*(?:%.*)?$/u', $line, $matches ) ) { |
|
240 | + } elseif (preg_match('/^\s*(?:%.*)?$/u', $line, $matches)) { |
|
241 | 241 | // Ignore comments and whitespace in patterns. |
242 | 242 | return true; |
243 | 243 | } else { |
244 | - throw new RangeException( 'Error: unknown pattern line ' . htmlentities( $line, ENT_NOQUOTES | ENT_HTML5 ) . "\n" ); |
|
244 | + throw new RangeException('Error: unknown pattern line ' . htmlentities($line, ENT_NOQUOTES | ENT_HTML5) . "\n"); |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | return true; |
@@ -254,8 +254,8 @@ discard block |
||
254 | 254 | * |
255 | 255 | * @return array |
256 | 256 | */ |
257 | - private static function split_at_whitespace( $line ) { |
|
258 | - return preg_split( '/\s+/Su', $line, -1, PREG_SPLIT_NO_EMPTY ); |
|
257 | + private static function split_at_whitespace($line) { |
|
258 | + return preg_split('/\s+/Su', $line, -1, PREG_SPLIT_NO_EMPTY); |
|
259 | 259 | } |
260 | 260 | |
261 | 261 | /** |
@@ -267,10 +267,10 @@ discard block |
||
267 | 267 | * @return string |
268 | 268 | */ |
269 | 269 | public function convert() { |
270 | - if ( ! file_exists( $this->url ) ) { |
|
271 | - $file_headers = @get_headers( $this->url ); |
|
272 | - if ( 'HTTP/1.0 404 Not Found' === $file_headers[0] ) { |
|
273 | - throw new RuntimeException( "Error: unknown pattern file '{$this->url}'\n" ); |
|
270 | + if ( ! file_exists($this->url)) { |
|
271 | + $file_headers = @get_headers($this->url); |
|
272 | + if ('HTTP/1.0 404 Not Found' === $file_headers[0]) { |
|
273 | + throw new RuntimeException("Error: unknown pattern file '{$this->url}'\n"); |
|
274 | 274 | } |
275 | 275 | } |
276 | 276 | |
@@ -283,36 +283,36 @@ discard block |
||
283 | 283 | $reading_patterns = false; |
284 | 284 | $reading_exceptions = false; |
285 | 285 | |
286 | - $file = new \SplFileObject( $this->url ); |
|
287 | - while ( ! $file->eof() ) { |
|
286 | + $file = new \SplFileObject($this->url); |
|
287 | + while ( ! $file->eof()) { |
|
288 | 288 | $line = $file->fgets(); |
289 | 289 | |
290 | - if ( $reading_patterns ) { |
|
291 | - $reading_patterns = $this->match_patterns( $line, $patterns ); |
|
292 | - } elseif ( $reading_exceptions ) { |
|
293 | - $reading_exceptions = $this->match_exceptions( $line, $exceptions ); |
|
290 | + if ($reading_patterns) { |
|
291 | + $reading_patterns = $this->match_patterns($line, $patterns); |
|
292 | + } elseif ($reading_exceptions) { |
|
293 | + $reading_exceptions = $this->match_exceptions($line, $exceptions); |
|
294 | 294 | } else { |
295 | 295 | // Not a pattern & not an exception. |
296 | - if ( preg_match( '/^\s*%.*$/u', $line, $matches ) ) { |
|
296 | + if (preg_match('/^\s*%.*$/u', $line, $matches)) { |
|
297 | 297 | $comments[] = $line; |
298 | - } elseif ( preg_match( '/^\s*\\\patterns\s*\{\s*(.*)$/u', $line, $matches ) ) { |
|
299 | - $reading_patterns = $this->match_patterns( $matches[1], $patterns ); |
|
300 | - } elseif ( preg_match( '/^\s*\\\hyphenation\s*{\s*(.*)$/u', $line, $matches ) ) { |
|
301 | - $reading_exceptions = $this->match_exceptions( $matches[1], $exceptions ); |
|
302 | - } elseif ( preg_match( '/^\s*\\\endinput.*$/u', $line, $matches ) ) { |
|
298 | + } elseif (preg_match('/^\s*\\\patterns\s*\{\s*(.*)$/u', $line, $matches)) { |
|
299 | + $reading_patterns = $this->match_patterns($matches[1], $patterns); |
|
300 | + } elseif (preg_match('/^\s*\\\hyphenation\s*{\s*(.*)$/u', $line, $matches)) { |
|
301 | + $reading_exceptions = $this->match_exceptions($matches[1], $exceptions); |
|
302 | + } elseif (preg_match('/^\s*\\\endinput.*$/u', $line, $matches)) { |
|
303 | 303 | // Ignore this line completely. |
304 | 304 | continue; |
305 | - } elseif ( preg_match( '/^\s*\\\[\w]+.*$/u', $line, $matches ) ) { |
|
305 | + } elseif (preg_match('/^\s*\\\[\w]+.*$/u', $line, $matches)) { |
|
306 | 306 | // Treat other commands as comments unless we are matching exceptions or patterns. |
307 | 307 | $comments[] = $line; |
308 | - } elseif ( preg_match( '/^\s*$/u', $line, $matches ) ) { |
|
308 | + } elseif (preg_match('/^\s*$/u', $line, $matches)) { |
|
309 | 309 | continue; // Do nothing. |
310 | 310 | } else { |
311 | - throw new RangeException( "Error: unknown line $line\n" ); |
|
311 | + throw new RangeException("Error: unknown line $line\n"); |
|
312 | 312 | } |
313 | 313 | } |
314 | 314 | } |
315 | 315 | |
316 | - return $this->format_results( $patterns, $exceptions, $comments ); |
|
316 | + return $this->format_results($patterns, $exceptions, $comments); |
|
317 | 317 | } |
318 | 318 | } |