コード例 #1
0
ファイル: database.php プロジェクト: rhysm/racktables
function getNarrowObjectList($varname = '')
{
    $wideList = listCells('object');
    if (strlen($varname) and strlen(getConfigVar($varname))) {
        global $parseCache;
        if (!isset($parseCache[$varname])) {
            $parseCache[$varname] = spotPayload(getConfigVar($varname), 'SYNT_EXPR');
        }
        if ($parseCache[$varname]['result'] != 'ACK') {
            return array();
        }
        $wideList = filterCellList($wideList, $parseCache[$varname]['load']);
    }
    $ret = array();
    foreach ($wideList as $cell) {
        $ret[$cell['id']] = $cell['dname'];
    }
    return $ret;
}
コード例 #2
0
ファイル: functions.php プロジェクト: rhysm/racktables
function getRackCode($text)
{
    if (!mb_strlen($text)) {
        return array('result' => 'NAK', 'load' => 'The RackCode text was found empty in ' . __FUNCTION__);
    }
    $text = str_replace("\r", '', $text) . "\n";
    $synt = spotPayload($text, 'SYNT_CODETEXT');
    if ($synt['result'] != 'ACK') {
        return $synt;
    }
    // An empty sentence list is semantically valid, yet senseless,
    // so checking intermediate result once more won't hurt.
    if (!count($synt['load'])) {
        return array('result' => 'NAK', 'load' => 'Empty parse tree found in ' . __FUNCTION__);
    }
    require_once 'code.php';
    // for semanticFilter()
    return semanticFilter($synt['load']);
}