code: def parse_definitions(definitions):
      
      defines = {}
      if definitions:
          for definition in definitions:
              define, value = parse_definition_expr(definition,
                                                    default_value=None)
              defines[define] = value
      return defines
docs: Parses a list of macro definitions and returns a "symbol table"
      as a dictionary.
  
      :params definitions:
          A list of command line macro definitions.
          Each item in the list should be in one of these two formats:
  
              * <variable>=<value>
              * <variable>
      :return:
          ``dict`` as symbol table or raises an exception thrown by
          :func:``parse_definition_expr``.
  
      Usage::
  
          >>> parse_definitions(['DEBUG=1'])
          {'DEBUG': 1}
          >>> parse_definitions(['FOOBAR=0x40', 'DEBUG=false'])
          {'DEBUG': False, 'FOOBAR': 64}
          >>> parse_definitions(['FOOBAR=whatever'])
          {'FOOBAR': 'whatever'}
          >>> parse_definitions(['FOOBAR'])
          {'FOOBAR': None}
          >>> parse_definitions(['FOOBAR=ah=3'])
          {'FOOBAR': 'ah=3'}
          >>> parse_definitions(None)
          {}
          >>> parse_definitions([])
          {}