Beispiel #1
0
 def __parse_returns_tag(self, name, desc):
     desc, annotations = self.__extract_annotations(desc)
     annotations = {
         annotation.name: annotation
         for annotation in annotations
     }
     return Tag(name, desc, annotations=annotations)
Beispiel #2
0
    def __parse_deprecated_tag(self, name, desc):
        split = desc.split(':', 1)
        if len(split) == 2 and len(split[0]) > 1:
            value = split[0]
            if ' ' in value:
                value = None
        else:
            value = None

        return Tag(name, desc, value=value)
Beispiel #3
0
    def __parse_tag(self, name, desc):
        if name.lower() == "since":
            return self.__parse_since_tag(name, desc)
        if name.lower() == "returns":
            return self.__parse_returns_tag(name, desc)
        if name.lower() == "return value":
            return self.__parse_returns_tag("returns", desc)
        if name.lower() == "stability":
            return self.__parse_stability_tag("stability", desc)
        if name.lower() == "deprecated":
            return self.__parse_deprecated_tag("deprecated", desc)
        if name.lower() == "topic":
            return self.__parse_topic_tag("topic", desc)

        validator = self.project.tag_validators.get(name)
        if not validator:
            warn('gtk-doc', "FIXME no tag validator")
            return None
        if not validator.validate(desc):
            warn('gtk-doc', "invalid value for tag %s : %s" % (name, desc))
            return None
        return Tag(name=name, description=desc, value=desc)
Beispiel #4
0
 def __add_default_tags(self, _, comment):
     for validator in list(self.tag_validators.values()):
         if validator.default and validator.name not in comment.tags:
             comment.tags[validator.name] = \
                 Tag(name=validator.name,
                     description=validator.default)
Beispiel #5
0
 def __parse_stability_tag(self, name, desc):
     value = desc.strip().lower()
     if value not in ('private', 'stable', 'unstable'):
         # FIXME warn
         return None
     return Tag(name, desc, value=value)
Beispiel #6
0
 def __parse_topic_tag(self, name, desc):
     return Tag(name, None, value=desc)
Beispiel #7
0
 def __parse_since_tag(self, name, desc):
     return Tag(name, desc, value=desc)