Changeset View
Changeset View
Standalone View
Standalone View
scripts/test/lipsum.php
| Show All 19 Lines | $args->parse( | ||||
| )); | )); | ||||
| $class = $args->getArg('class'); | $class = $args->getArg('class'); | ||||
| if (count($class) !== 1) { | if (count($class) !== 1) { | ||||
| $args->printHelpAndExit(); | $args->printHelpAndExit(); | ||||
| } | } | ||||
| $class = reset($class); | $class = reset($class); | ||||
| $symbols = id(new PhutilSymbolLoader()) | $symbols = id(new PhutilClassMapQuery()) | ||||
| ->setAncestorClass('PhutilContextFreeGrammar') | ->setAncestorClass('PhutilContextFreeGrammar') | ||||
| ->setConcreteOnly(true) | ->execute(); | ||||
| ->selectAndLoadSymbols(); | |||||
| $symbols = ipull($symbols, 'name', 'name'); | $symbols = ipull($symbols, 'name', 'name'); | ||||
| if (empty($symbols[$class])) { | if (empty($symbols[$class])) { | ||||
| $available = implode(', ', array_keys($symbols)); | $available = implode(', ', array_keys($symbols)); | ||||
| throw new PhutilArgumentUsageException( | throw new PhutilArgumentUsageException( | ||||
| pht( | pht( | ||||
| "Class '%s' is not a defined, concrete subclass of %s. ". | "Class '%s' is not a defined, concrete subclass of %s. ". | ||||
| "Available classes are: %s", | "Available classes are: %s", | ||||
| $class, | $class, | ||||
| 'PhutilContextFreeGrammar', | 'PhutilContextFreeGrammar', | ||||
| $available)); | $available)); | ||||
| } | } | ||||
| $object = newv($class, array()); | $object = newv($class, array()); | ||||
| echo $object->generate()."\n"; | echo $object->generate()."\n"; | ||||