/**
  * @return OqlSelectPropertiesClause
  **/
 public static function properties($clause)
 {
     return OqlSelectPropertiesParser::create()->parse($clause);
 }
 private function propertyState()
 {
     $token = $this->tokenizer->peek();
     if (!$token) {
         $this->error("expecting 'from' clause");
     }
     if ($this->checkKeyword($token, 'from')) {
         return self::FROM_STATE;
     }
     $clause = OqlSelectPropertiesParser::create()->setTokenizer($this->tokenizer)->parse();
     $this->oqlObject->addProperties($clause);
     if ($clause->isDistinct()) {
         $this->oqlObject->setDistinct(true);
     }
     return self::FROM_STATE;
 }