예제 #1
0
 /**
  * Parses enum
  *
  * @param EnumDescriptor $enum    Enum descriptor
  * @param string         $content Protobuf enum description
  *
  * @return EnumDescriptor
  * @throws Exception
  */
 private function _parseEnum(EnumDescriptor $enum, $content)
 {
     $match = preg_match_all('/(.*);\\s?/', $content, $matches);
     if (!$match) {
         throw new \Exception('Semantic error in Enum!');
     }
     foreach ($matches[1] as $match) {
         $split = preg_split('/=/', $match);
         $enum->addValue(new EnumValueDescriptor(trim($split[0]), trim($split[1])));
     }
     return $enum;
 }
예제 #2
0
 /**
  * Adds new enum to message
  *
  * @param EnumDescriptor $enum Enum
  *
  * @return null
  */
 public function addEnum(EnumDescriptor $enum)
 {
     $this->_enums[$enum->getName()] = $enum;
 }