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"; |