You are here

function ARC_sparql_parser::parse_ConditionalAndExpression in Taxonomy import/export via XML 5

Same name and namespace in other branches
  1. 5.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConditionalAndExpression()
  2. 6.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConditionalAndExpression()
  3. 6 arc/ARC_sparql_parser.php \ARC_sparql_parser::parse_ConditionalAndExpression()
1 call to ARC_sparql_parser::parse_ConditionalAndExpression()
ARC_sparql_parser::parse_ConditionalOrExpression in arc/ARC_sparql_parser.php

File

arc/ARC_sparql_parser.php, line 1173

Class

ARC_sparql_parser

Code

function parse_ConditionalAndExpression($val = "") {
  if ($sub_result = $this
    ->parse_ValueLogical($val)) {
    $val = $sub_result["unparsed_val"];
    $entries = array(
      $sub_result,
    );
    do {
      $proceed = false;
      if (preg_match("/^(\\&\\&)(.*)\$/s", $val, $matches)) {
        $operator = $matches[1];
        $val = trim($matches[2]);
        if ($val && ($sub_sub_result = $this
          ->parse_ValueLogical($val))) {
          $proceed = true;
          $val = $sub_sub_result["unparsed_val"];
          unset($sub_sub_result["unparsed_val"]);
          $sub_sub_result["operator"] = $operator;
          $entries[] = $sub_sub_result;
        }
      }
    } while ($proceed);
    if (count($entries) == 1) {
      return $sub_result;
    }
    else {

      //unset($entries[0]["unparsed_val"]);
      return array(
        "type" => "expression",
        "sub_type" => "and",
        "entries" => $entries,
        "unparsed_val" => $val,
      );
    }
  }
  return false;
}