def parse_definitions(self, class_, dunder_all=False):
while self.current is not None:<EOL><INDENT>self.log.debug("<STR_LIT>",<EOL>self.current.kind, self.current.value)<EOL>self.log.debug('<STR_LIT>', self.stream.got_logical_newline)<EOL>if dunder_all and self.current.value == '<STR_LIT>':<EOL><INDENT>self.parse_dunder_all()<EOL><DEDENT>elif (self.current.kind == tk.OP and<EOL>self.current.value == '<STR_LIT:@>' and<EOL>self.stream.got_logical_newline):<EOL><INDENT>self.consume(tk.OP)<EOL>self.parse_decorators()<EOL><DEDENT>elif self.current.value in ['<STR_LIT>', '<STR_LIT:class>']:<EOL><INDENT>yield self.parse_definition(class_._nest(self.current.value))<EOL><DEDENT>elif self.current.kind == tk.INDENT:<EOL><INDENT>self.consume(tk.INDENT)<EOL>for definition in self.parse_definitions(class_):<EOL><INDENT>yield definition<EOL><DEDENT><DEDENT>elif self.current.kind == tk.DEDENT:<EOL><INDENT>self.consume(tk.DEDENT)<EOL>return<EOL><DEDENT>elif self.current.value == '<STR_LIT>':<EOL><INDENT>self.parse_from_import_statement()<EOL><DEDENT>else:<EOL><INDENT>self.stream.move()<EOL><DEDENT><DEDENT>
Parse multiple definitions and yield them.