plugins/bem.js
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;
    }

}
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;
    }

}
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