/** * 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; }
/** * Adds new enum to message * * @param EnumDescriptor $enum Enum * * @return null */ public function addEnum(EnumDescriptor $enum) { $this->_enums[$enum->getName()] = $enum; }