code: def Macro(self, macro):
          
          if macro.location is None:
              log.info('Ignoring %s with no location', macro.name)
              return
          if self.generate_locations:
              print("# %s:%s" % (macro.location), file=self.stream)
          if self.generate_comments:
              self.print_comment(macro)
          print("%s = %s # macro" % (macro.name, macro.body), file=self.stream)
          self.macros += 1
          self.names.add(macro.name)
          return
docs: Handles macro. No test cases else that #defines.