/*
解释器模式:
对于一种语言,给出其文法表示形式,并定义一种解释器,通过使用解释器来解释语言中定义的句子。
 */

//XPath解释器
var Interpreter = (function () {
    function getSublingName() {
        // 获取兄弟元素名称
    }
    return function (node, wrap) {
        var path = [];
        wrap = wrap || document;
        if (node === wrap) {
            if (wrap.nodeType == 1) {
                path.push(wrap.nodeName.toUpperCase());
            }
            return path;
        }
        if (node.parentNode !== wrap) {
            path = arguments.callee(node.parentNode, wrap);
        } else {
            if (wrap.nodeType == 1) {
                path.push(wrap.nodeName.toUpperCase());
            }
        }
        var siblingsNames = getSublingName(node);
        if (node.nodeType == 1) {
            path.push(node.nodeName.toUpperCase() + siblingsNames)
        }
        return path;
    }
})();