whole_func_string: function getEntity(decl) {
      if (decl.type === "Literal") {
          return {block: decl.value};
      }
  
      if (decl.type === "ObjectExpression") {
          var base = getProperty(decl, 'baseBlock'),
              o = {
                  block: getProperty(decl, 'block'),
                  mod: getProperty(decl, 'modName'),
                  val: getProperty(decl, 'modVal')
              };
          
          if (base) {
              o.base = base;
          }
          return o;
      }
  
  }
func_code_string: function getEntity(decl) {
      if (decl.type === "Literal") {
          return {block: decl.value};
      }
  
      if (decl.type === "ObjectExpression") {
          var base = getProperty(decl, 'baseBlock'),
              o = {
                  block: getProperty(decl, 'block'),
                  mod: getProperty(decl, 'modName'),
                  val: getProperty(decl, 'modVal')
              };
          
          if (base) {
              o.base = base;
          }
          return o;
      }
  
  }
func_documentation_string: Constructs a bem entity description
  from first argument of `BEM.DOM.decl`
  
  @param {Object} decl an AST node of a first argument of
  BEM.DOM.decl
  @returns {Object} bem entity description with `block`,
  `mod`, and `val` keys