| 1 |  |  | <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | declare(strict_types=1); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | namespace Doctrine\Inflector\Rules; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | class Singular | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  | { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |      * @return Rule[] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 | 527 |  |     public static function getDefaultRules() : iterable | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 | 527 |  |         yield new Rule('/(s)tatuses$/i', '\1\2tatus'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 | 527 |  |         yield new Rule('/^(.*)(menu)s$/i', '\1\2'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 | 527 |  |         yield new Rule('/(quiz)zes$/i', '\\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 | 527 |  |         yield new Rule('/(matr)ices$/i', '\1ix'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 | 527 |  |         yield new Rule('/(vert|ind)ices$/i', '\1ex'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 | 527 |  |         yield new Rule('/^(ox)en/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 | 527 |  |         yield new Rule('/(alias)(es)*$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 | 527 |  |         yield new Rule('/(buffal|her|potat|tomat|volcan)oes$/i', '\1o'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 | 527 |  |         yield new Rule('/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i', '\1us'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 | 527 |  |         yield new Rule('/([ftw]ax)es/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 | 527 |  |         yield new Rule('/(analys|ax|cris|test|thes)es$/i', '\1is'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 | 527 |  |         yield new Rule('/(shoe|slave)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 | 527 |  |         yield new Rule('/(o)es$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 | 527 |  |         yield new Rule('/ouses$/', 'ouse'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 | 527 |  |         yield new Rule('/([^a])uses$/', '\1us'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 | 527 |  |         yield new Rule('/([m|l])ice$/i', '\1ouse'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 | 527 |  |         yield new Rule('/(x|ch|ss|sh)es$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 | 527 |  |         yield new Rule('/(m)ovies$/i', '\1\2ovie'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 | 527 |  |         yield new Rule('/(s)eries$/i', '\1\2eries'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 | 527 |  |         yield new Rule('/([^aeiouy]|qu)ies$/i', '\1y'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 | 527 |  |         yield new Rule('/([lr])ves$/i', '\1f'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 | 527 |  |         yield new Rule('/(tive)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 | 527 |  |         yield new Rule('/(hive)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 | 527 |  |         yield new Rule('/(drive)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 | 527 |  |         yield new Rule('/(dive)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 | 527 |  |         yield new Rule('/(olive)s$/i', '\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 | 527 |  |         yield new Rule('/([^fo])ves$/i', '\1fe'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 | 527 |  |         yield new Rule('/(^analy)ses$/i', '\1sis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 | 527 |  |         yield new Rule('/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i', '\1\2sis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 | 527 |  |         yield new Rule('/(tax)a$/i', '\1on'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 | 527 |  |         yield new Rule('/(c)riteria$/i', '\1riterion'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 | 527 |  |         yield new Rule('/([ti])a$/i', '\1um'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 | 527 |  |         yield new Rule('/(p)eople$/i', '\1\2erson'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 | 527 |  |         yield new Rule('/(m)en$/i', '\1an'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 | 527 |  |         yield new Rule('/(c)hildren$/i', '\1\2hild'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 | 527 |  |         yield new Rule('/(f)eet$/i', '\1oot'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 | 527 |  |         yield new Rule('/(n)ews$/i', '\1\2ews'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 | 527 |  |         yield new Rule('/eaus$/', 'eau'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 | 527 |  |         yield new Rule('/^(.*us)$/', '\\1'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 | 527 |  |         yield new Rule('/s$/i', ''); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 | 527 |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |      * @return Word[] | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 58 |  |  |      */ | 
            
                                                                        
                            
            
                                    
            
            
                | 59 | 528 |  |     public static function getUninflectedWords() : iterable | 
            
                                                                        
                            
            
                                    
            
            
                | 60 |  |  |     { | 
            
                                                                        
                            
            
                                    
            
            
                | 61 | 528 |  |         yield new Word('.*[nrlm]ese'); | 
            
                                                                        
                            
            
                                    
            
            
                | 62 | 528 |  |         yield new Word('.*deer'); | 
            
                                                                        
                            
            
                                    
            
            
                | 63 | 528 |  |         yield new Word('.*fish'); | 
            
                                                                        
                            
            
                                    
            
            
                | 64 | 528 |  |         yield new Word('.*measles'); | 
            
                                                                        
                            
            
                                    
            
            
                | 65 | 528 |  |         yield new Word('.*ois'); | 
            
                                                                        
                            
            
                                    
            
            
                | 66 | 528 |  |         yield new Word('.*pox'); | 
            
                                                                        
                            
            
                                    
            
            
                | 67 | 528 |  |         yield new Word('.*sheep'); | 
            
                                                                        
                            
            
                                    
            
            
                | 68 | 528 |  |         yield new Word('.*ss'); | 
            
                                                                        
                            
            
                                    
            
            
                | 69 | 528 |  |         yield new Word('data'); | 
            
                                                                        
                            
            
                                    
            
            
                | 70 | 528 |  |         yield new Word('police'); | 
            
                                                                        
                            
            
                                    
            
            
                | 71 | 528 |  |         yield new Word('pants'); | 
            
                                                                        
                            
            
                                    
            
            
                | 72 | 528 |  |         yield new Word('clothes'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 73 | 528 |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 74 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 75 |  |  |     /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 76 |  |  |      * @return Rule[] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 77 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 78 | 528 |  |     public static function getIrregularRules() : iterable | 
            
                                                                                                            
                            
            
                                    
            
            
                | 79 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 80 | 528 |  |         yield new Rule('abuses', 'abuse'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 81 | 528 |  |         yield new Rule('avalanches', 'avalanche'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 82 | 528 |  |         yield new Rule('caches', 'cache'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 83 | 528 |  |         yield new Rule('criteria', 'criterion'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 84 | 528 |  |         yield new Rule('curves', 'curve'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 85 | 528 |  |         yield new Rule('emphases', 'emphasis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 86 | 528 |  |         yield new Rule('foes', 'foe'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 87 | 528 |  |         yield new Rule('geese', 'goose'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 88 | 528 |  |         yield new Rule('graves', 'grave'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 89 | 528 |  |         yield new Rule('hoaxes', 'hoax'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 90 | 528 |  |         yield new Rule('media', 'medium'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 91 | 528 |  |         yield new Rule('neuroses', 'neurosis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 92 | 528 |  |         yield new Rule('saves', 'save'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 93 | 528 |  |         yield new Rule('waves', 'wave'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 94 | 528 |  |         yield new Rule('oases', 'oasis'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 95 | 528 |  |         yield new Rule('valves', 'valve'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 96 | 528 |  |     } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 97 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 98 |  |  |  |