code: private void addCriteria(List<GenericCriteria> list, byte[] block)
     {
        byte[] leftBlock = getChildBlock(block);
        byte[] rightBlock1 = getListNextBlock(leftBlock);
        byte[] rightBlock2 = getListNextBlock(rightBlock1);
        TestOperator operator = TestOperator.getInstance(MPPUtility.getShort(block, 0) - 0x3E7);
        FieldType leftValue = getFieldType(leftBlock);
        Object rightValue1 = getValue(leftValue, rightBlock1);
        Object rightValue2 = rightBlock2 == null ? null : getValue(leftValue, rightBlock2);
  
        GenericCriteria criteria = new GenericCriteria(m_properties);
        criteria.setLeftValue(leftValue);
        criteria.setOperator(operator);
        criteria.setRightValue(0, rightValue1);
        criteria.setRightValue(1, rightValue2);
        list.add(criteria);
  
        if (m_criteriaType != null)
        {
           m_criteriaType[0] = leftValue.getFieldTypeClass() == FieldTypeClass.TASK;
           m_criteriaType[1] = !m_criteriaType[0];
        }
  
        if (m_fields != null)
        {
           m_fields.add(leftValue);
        }
  
        processBlock(list, getListNextBlock(block));
     }
docs: Adds a basic LHS OPERATOR RHS block.
  
  @param list parent criteria list
  @param block current block