code: function getIdStringFromIdParts(source, idParts) {
          if (idParts.length === 1) {
              return null;
          }
          var i, l, idPart, idPartType, check = 0, nextIdNameCode;
          for (i = 0, l = idParts.length; i < l; i++) {
              if (idParts[i].type) {
                  check = 1;
                  break;
              }
          }
          if (check) {
              var ret = [];
              for (i = 0, l = idParts.length; i < l; i++) {
                  idPart = idParts[i];
                  idPartType = idPart.type;
                  if (idPartType) {
                      nextIdNameCode = xtplAstToJs[idPartType](idPart);
                      pushToArray(source, nextIdNameCode.source);
                      ret.push(nextIdNameCode.exp);
                  } else {
                      // literal a.x
                      ret.push(wrapByDoubleQuote(idPart));
                  }
              }
              return ret;
          } else {
              return null;
          }
      }
docs: consider x[d] consider x[d]