parameters: (self, path, product_dir=None)
return_statement: return path
docstring: Expand specials like $!PRODUCT_DIR in |path|.
  
          If |product_dir| is None, assumes the cwd is already the product
          dir.  Otherwise, |product_dir| is the relative path to the product
          dir.
docstring_summary: Expand specials like $!PRODUCT_DIR in |path|.
docstring_tokens: Expand specials like $!PRODUCT_DIR in |path| .
function: def ExpandSpecial(self, path, product_dir=None):
          """Expand specials like $!PRODUCT_DIR in |path|.
  
          If |product_dir| is None, assumes the cwd is already the product
          dir.  Otherwise, |product_dir| is the relative path to the product
          dir.
          """
  
          PRODUCT_DIR = "$!PRODUCT_DIR"
          if PRODUCT_DIR in path:
              if product_dir:
                  path = path.replace(PRODUCT_DIR, product_dir)
              else:
                  path = path.replace(PRODUCT_DIR + "/", "")
                  path = path.replace(PRODUCT_DIR + "\\", "")
                  path = path.replace(PRODUCT_DIR, ".")
  
          INTERMEDIATE_DIR = "$!INTERMEDIATE_DIR"
          if INTERMEDIATE_DIR in path:
              int_dir = self.GypPathToUniqueOutput("gen")
              # GypPathToUniqueOutput generates a path relative to the product dir,
              # so insert product_dir in front if it is provided.
              path = path.replace(
                  INTERMEDIATE_DIR, os.path.join(product_dir or "", int_dir)
              )
  
          CONFIGURATION_NAME = "$|CONFIGURATION_NAME"
          path = path.replace(CONFIGURATION_NAME, self.config_name)
  
          return path
function_tokens: def ExpandSpecial ( self , path , product_dir = None ) : PRODUCT_DIR = "$!PRODUCT_DIR" if PRODUCT_DIR in path : if product_dir : path = path . replace ( PRODUCT_DIR , product_dir ) else : path = path . replace ( PRODUCT_DIR + "/" , "" ) path = path . replace ( PRODUCT_DIR + "\\" , "" ) path = path . replace ( PRODUCT_DIR , "." ) INTERMEDIATE_DIR = "$!INTERMEDIATE_DIR" if INTERMEDIATE_DIR in path : int_dir = self . GypPathToUniqueOutput ( "gen" ) # GypPathToUniqueOutput generates a path relative to the product dir, # so insert product_dir in front if it is provided. path = path . replace ( INTERMEDIATE_DIR , os . path . join ( product_dir or "" , int_dir ) ) CONFIGURATION_NAME = "$|CONFIGURATION_NAME" path = path . replace ( CONFIGURATION_NAME , self . config_name ) return path