docs: @Override
      public void enteredState(ParsingContext ctx) throws CommandFormatException {
          final String stateId = ctx.getState().getId();
          //System.out.println("entered " + stateId + " '" + ctx.getCharacter() + "'");
  
          if(ArgumentValueState.ID.equals(stateId)) {
              if(currentState != null) {
                  if(currentState.isOnSeparator() && !currentState.isComposite()) {
                      currentState.enteredValue();
                  }
                  pushCurrentState();
                  currentState = new DefaultValueState();
              } else {
                  currentState = new DefaultValueState();
              }
          } else if(CompositeState.OBJECT.equals(stateId)) {
              if(currentState != null) {
                  currentState.enteredValue();
                  pushCurrentState();
              }
              if (ctx.getCharacter() == '[') {
                  currentState = new ListValueState();
              } else {
                  currentState = new ObjectValueState();
              }
          } else if(CompositeState.LIST.equals(stateId)) {
              if(currentState != null) {
                  currentState.enteredValue();
                  pushCurrentState();
              }
              currentState = new ListValueState();
          } else if(ListItemSeparatorState.ID.equals(stateId)) {
              currentState.itemSeparator();
          } else if(NameValueSeparatorState.ID.equals(stateId)) {
              currentState.nameSeparator(ctx);
          } else if(QuotesState.ID.equals(stateId)) {
              flag ^= QUOTES;
          } else if(EscapeCharacterState.ID.equals(stateId)) {
              flag ^= ESCAPE;
          } else if (BytesValueState.ID.equals(stateId)) {
              currentState = new BytesState();
          }
      }