public function __construct($hash, $name, $value, array &$args, array $targs) { $global = get_default($args, 'global', false); if ($global) { $nameParts = LibraryManager::SplitNamespace($value); $value = $nameParts[\count($nameParts) - 1]; } parent::__construct(InfoKind::T_FUNC, $hash, $name, $value, $args, $targs); grokit_assert(array_key_exists('input', $args), 'Malformed return value from function generator ' . $name . ': No input defined.'); $this->args = $args['input']; grokit_assert(array_key_exists('result', $args), 'Malformed return value from function generator ' . $name . ': No result type defined.'); $this->resultType = $args['result']; if (array_key_exists('deterministic', $args)) { $this->deterministic = $args['deterministic']; } }
function parseImport($ast) { assert_ast_type($ast, NodeType::IMPORT); $lib = parseIdentifier(ast_node_data($ast)); $source = ast_node_source($ast); $base_dir = getenv('GROKIT_INSTALLED_LIBRARY_PATH'); $parts = LibraryManager::SplitNamespace($lib); $file = $base_dir . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $parts) . '.php'; $result = (include_once $file); grokit_assert($result !== false, 'Failed to include library ' . $lib . ', no library file ' . $file . ' found ' . $source); }