protected function compileEnum(proto\EnumDescriptorProto $enum, $ns)
 {
     $s = array();
     $s[] = "namespace " . $this->normalizeNS($ns) . " {";
     $s[] = "";
     $s[] = "  // @@protoc_insertion_point(scope_namespace)";
     $s[] = "  // @@protoc_insertion_point(namespace_{$ns})";
     $s[] = "";
     $cmt = $this->compiler->getComment($ns . '.' . $enum->getName(), '   * ');
     if ($cmt) {
         $s[] = "  /**";
         $s[] = $cmt;
         $s[] = "   */";
     }
     $s[] = "  class " . $enum->getName() . ' extends \\DrSlump\\Protobuf\\Enum {';
     foreach ($enum->getValueList() as $value) {
         $s[] = "    const " . $value->getName() . " = " . $value->getNumber() . ";";
     }
     $s[] = "";
     $s[] = "    // @@protoc_insertion_point(scope_class)";
     $s[] = '    // @@protoc_insertion_point(class_' . $ns . '.' . $enum->getName() . ')';
     $s[] = "  }";
     $s[] = "}";
     $s[] = "";
     return implode(PHP_EOL, $s);
 }
 public function compileEnum(proto\EnumDescriptorProto $enum, $namespace)
 {
     $s[] = "{$namespace}.{$enum->name} = {";
     $lines = array();
     foreach ($enum->getValueList() as $value) {
         $lines[] = "  /** @const */ {$value->name}: {$value->number}";
     }
     $s[] = implode(",\n", $lines);
     $s[] = '};';
     $s[] = '';
     return implode("\n", $s);
 }