function ARC_sparql_parser::parse_OrderCondition in Taxonomy import/export via XML 6
Same name and namespace in other branches
- 5.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_OrderCondition()
- 5 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_OrderCondition()
- 6.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_OrderCondition()
1 call to ARC_sparql_parser::parse_OrderCondition()
File
- arc/
ARC_sparql_parser.php, line 644
Class
Code
function parse_OrderCondition() {
$q = $this->q;
$conds = array();
do {
$cond = false;
/* (ASC|DESC) (BrackettedExpression) */
if (preg_match("/^(ASC|DESC)?(\\s*)(\\(.*)\$/is", $q, $matches)) {
if (($bracket_data = $this
->extract_bracket_data($matches[3])) && ($sub_result = $this
->parse_Expression(trim($bracket_data)))) {
$cond = true;
$conds[] = array(
"type" => "expression",
"direction" => strtolower($matches[1]),
"expression" => $sub_result,
);
$q = trim(substr($q, strlen($matches[1] . $matches[2] . $bracket_data) + 2));
}
if (preg_match("/^(ASC|DESC)?(\\s*)(\\(.*)\$/is", $q, $matches)) {
if (($bracket_data = $this
->extract_bracket_data($matches[3])) && ($sub_result = $this
->parse_Expression(trim($bracket_data)))) {
$cond = true;
$conds[] = array(
"type" => "expression",
"direction" => strtolower($matches[1]),
"expression" => $sub_result,
);
$q = trim(substr($q, strlen($matches[1] . $matches[2] . $bracket_data) + 2));
}
}
if (preg_match("/^(ASC|DESC)?(\\s*)(\\(.*)\$/is", $q, $matches)) {
if (($bracket_data = $this
->extract_bracket_data($matches[3])) && ($sub_result = $this
->parse_Expression(trim($bracket_data)))) {
$cond = true;
$conds[] = array(
"type" => "expression",
"direction" => strtolower($matches[1]),
"expression" => $sub_result,
);
$q = trim(substr($q, strlen($matches[1] . $matches[2] . $bracket_data) + 2));
}
}
if (preg_match("/^(ASC|DESC)?(\\s*)(\\(.*)\$/is", $q, $matches)) {
if (($bracket_data = $this
->extract_bracket_data($matches[3])) && ($sub_result = $this
->parse_Expression(trim($bracket_data)))) {
$cond = true;
$conds[] = array(
"type" => "expression",
"direction" => strtolower($matches[1]),
"expression" => $sub_result,
);
$q = trim(substr($q, strlen($matches[1] . $matches[2] . $bracket_data) + 2));
}
}
}
elseif ($sub_result = $this
->parse_Var($q)) {
$cond = true;
$q = $sub_result["unparsed_val"];
unset($sub_result["unparsed_val"]);
$conds[] = $sub_result;
}
elseif ($sub_result = $this
->parse_FunctionCall($q)) {
$cond = true;
$q = $sub_result["unparsed_val"];
unset($sub_result["unparsed_val"]);
$conds[] = $sub_result;
}
} while ($cond);
$this->infos["order_conditions"] = $conds;
$this->q = trim($q);
}