+ tag += self.consume()
+ tag += self.consume(')')
+ tags.extend(self.parse_sal_annotation(tag))
+ return tags
+
+ def parse_sal_annotation(self, tags):
+ try:
+ tags, args = tags.split('(')
+ except ValueError:
+ pass
+ assert tags[0] == '_'
+ if tags[1] == '_':
+ tags = tags[2:]
+ if tags[-1] == '_':
+ tags = tags[1:-1]
+ tags = tags.lower()
+ tags = tags.split('_')