code: private void pushLevel(final Mode mode) {
          JsonLevel newJsonLevel = null;
  
          if (mode == Mode.BOM) {
              newJsonLevel = new JsonLevel(mode, new JsonPointer()); //not a valid nesting level
          } else if (mode == Mode.JSON_OBJECT) {
              if (levelStack.size() > 0) {
                  JsonLevel current = levelStack.peek();
                  newJsonLevel = new JsonLevel(mode, new JsonPointer(current.jsonPointer().tokens()));
              } else {
                  newJsonLevel = new JsonLevel(mode, new JsonPointer());
              }
          } else if (mode == Mode.JSON_ARRAY) {
              if (levelStack.size() > 0) {
                  JsonLevel current = levelStack.peek();
                  newJsonLevel = new JsonLevel(mode, new JsonPointer(current.jsonPointer().tokens()));
              } else {
                  newJsonLevel = new JsonLevel(mode, new JsonPointer());
              }
              newJsonLevel.isArray(true);
              newJsonLevel.setArrayIndexOnJsonPointer();
          }
  
          levelStack.push(newJsonLevel);
      }
docs: Pushes a new {@link JsonLevel} onto the level stack.
  
  @param mode the mode for this level.