parameters: (self, t)
docstring: Default handling of a #define line.
docstring_summary: Default handling of a #define line.
docstring_tokens: Default handling of a #define line .
function: def do_define(self, t):
          """
          Default handling of a #define line.
          """
          _, name, args, expansion = t
          try:
              expansion = int(expansion)
          except (TypeError, ValueError):
              # handle "defined" chain "! (defined (A) || defined (B)" ...
              if "defined " in expansion:
                  self.cpp_namespace[name] = self.eval_expression(t[2:])
                  return
  
          if args:
              evaluator = FunctionEvaluator(name, args[1:-1], expansion)
              self.cpp_namespace[name] = evaluator
          else:
              self.cpp_namespace[name] = expansion
function_tokens: def do_define ( self , t ) : _ , name , args , expansion = t try : expansion = int ( expansion ) except ( TypeError , ValueError ) : # handle "defined" chain "! (defined (A) || defined (B)" ... if "defined " in expansion : self . cpp_namespace [ name ] = self . eval_expression ( t [ 2 : ] ) return if args : evaluator = FunctionEvaluator ( name , args [ 1 : - 1 ] , expansion ) self . cpp_namespace [ name ] = evaluator else : self . cpp_namespace [ name ] = expansion