code: public boolean hasAxis() {
          int end = nextXpathNodeSeperator();
          if (end == -1) {
              end = queue.length() - 1;
          }
          for (int i = pos; i < end - 1; i++) {
              if (queue.charAt(i) == ':' && queue.charAt(i + 1) == ':') {
                  String axisStr = queue.substring(pos, i);
                  TokenQueue axisTokenQueue = new TokenQueue(axisStr);
                  // 轴允许字母,-,_
                  String axisName = axisTokenQueue.consumeCssIdentifier();
                  if (StringUtils.isEmpty(axisName)) {
                      return false;
                  }
                  axisTokenQueue.consumeWhitespace();
                  if (axisTokenQueue.isEmpty()) {
                      return true;// 无参轴
                  }
                  if (axisTokenQueue.matches("(")) {
                      String functionParams = axisTokenQueue.chompBalanced('(', ')');
                      if (functionParams == null) {
                          return false;// 格式不合法
                      }
                      axisTokenQueue.consumeWhitespace();
                      // 含参轴
                      return axisTokenQueue.isEmpty();
                  }
                  return false;
              }
          }
          return false;
      }
docs: 当前节点是否有轴 abc('param1','param2'):: 或者abc::
  
  @return 是否是轴节点