code: function autoCloseCommand(context, CommandType) {
          var stack = context.stack;
          var closeEnd = CommandType
              ? stack.find(
                  function (item) {
                      return item instanceof CommandType;
                  }
              )
              : stack.bottom();
  
          if (closeEnd) {
              var node;
  
              while ((node = stack.top()) !== closeEnd) {
                  /* jshint ignore:start */
                  // 如果节点对象不包含autoClose方法
                  // 则认为该节点不支持自动闭合，需要抛出错误
                  // for等节点不支持自动闭合
                  if (!node.autoClose) {
                      throw new Error(node.type + ' must be closed manually: ' + node.value);
                  }
                  /* jshint ignore:end */
  
                  node.autoClose(context);
              }
  
              closeEnd.close(context);
          }
  
          return closeEnd;
      }
docs: 命令自动闭合
  
  @inner
  @param {Object} context 语法分析环境对象
  @param {Function=} CommandType 自闭合的节点类型
  @return {Command} 被闭合的节点