code: def process_token(self, tok):
          
          if(tok[0].__str__() in ('Token.Comment.Multiline', 'Token.Comment',
                  'Token.Literal.String.Doc')):
              self.comments += tok[1].count('\n')+1
          elif(tok[0].__str__() in ('Token.Comment.Single')):
              self.comments += 1
          elif(self.contains_code and tok[0].__str__().startswith('Token.Text')
                  and tok[1].count(u'\n')):
              # start new line
              self.contains_code = False
              self.sloc += 1
          # for c style includes
          elif(tok[0].__str__() == 'Token.Comment.Preproc' and
                  tok[1].count(u'\n')):
              # start new line
              self.contains_code = False
              self.sloc += 1
          elif(tok[0][0] in token_types):
              self.contains_code = True
docs: count comments and non-empty lines that contain code