RE: [xri] Bug in pseudocode?

From
Drummond Reed <>
Date
2008-02-25T06:39:19+00:00
ID
070601c87779$1ca172b0$0800a8c0@ELROND
Thread
RE: [xri] Bug in pseudocode?
From: 
[mailto:] On Behalf Of Gabe
Wachob

Sent: Sunday, February 24, 2008
4:46 PM

To: XRI TC

Subject: [xri] Bug in pseudocode?

 

Can't quite figure out the pseudocode here (in sec 13.6):

 IF Present.x=FALSE     ;see 12.3.3 

2668   IF nodefault_x != TRUE   ;see 10.3.2 

2669    SET Default.x=TRUE 

2670   ENDIF 

2671  ENDIF 

It looks like maybe this stuff should be INSIDE the initial FOR loop? Otherwise
x is not defined? 

I'm trying to implement this stuff...

   -Gabe

[=Drummond] Gabe, good catch –
nobody noticed that since we added section 7 right at the end of the CD02
cycle, we needed to update all the section references in the pseudocode (they
are hand-coded references and not bookmarks).

 

Below is an update to the pseudocode text
with all the references updated.

 

RE the Present.x and nodefault_x
references you cite above, the “x” just stands for “Type,
Path, or Mediatype” as was defined above – nobody thought we needed
to redefine it. Maybe we need to take that definition out of the previous FOR
loop and put it at the very start so it’s clear it’s a global
definition? We just used “x” because it made the code much more
compact than calling out three separate loops, one for Type, one for Path, and
one for Mediatype.

 

I’m wide open to your suggestions
for how best to improve this.

 

=Drummond 

 

FOR EACH SEP

  CREATE set of SEL
match flags

  SET all flags to
FALSE

  FOR EACH SEL of
category x (where x=Type, Path, or Mediatype)

         SET
Present.x=TRUE

         IF match on
this SEL is POSITIVE

               IF
select="true"                  ;see 13.4.2

                      ADD
SEP TO SELECTED SET

                      NEXT
SEP

               ELSE

                      SET
Positive.x=TRUE

               ENDIF

         ELSEIF match
on this SEL is DEFAULT      ;see 13.3.2

               IF
Positive.x != TRUE AND

               nodefault
!= x                    ;see 13.3.5

                      SET
Default.x=TRUE

               ENDIF

         ENDIF

  ENDFOR

  IF Present.x=FALSE                              ;see
13.3.3

         IF nodefault_x
!= TRUE                   ;see 13.3.2

               SET
Default.x=TRUE

         ENDIF

  ENDIF

  IF Positive.Type=TRUE
AND

     Positive.Path=TRUE
AND

    
Positive.Mediatype=TRUE                      ;see 13.4.3

         ADD SEP TO
SELECTED SET

         NEXT SEP

  ELSEIF SELECTED SET
!= EMPTY                    ;see 13.5.1

         NEXT SEP

  ELSEIF
(Positive.Type=TRUE OR Default.Type=TRUE) AND

        
(Positive.Path=TRUE OR Default.Path=TRUE) AND

        
(Positive.MediaType=TRUE OR Default.MediaType=TRUE)

         ADD SEP TO
DEFAULT SET                   ;see 13.4.4

  ENDIF

ENDFOR

IF SELECTED SET = EMPTY                           ;see
13.5.1

  FOR EACH SEP IN
DEFAULT SET              ;see 13.5.2

         IF
(Positive.Type=TRUE AND Positive.Path=TRUE) OR

         (Positive.Type=TRUE
AND Positive.MediaType=TRUE) OR

         (Positive.Path=TRUE
AND Positive.MediaType=TRUE)

               ADD SEP
TO SELECTED SET

         ENDIF

  ENDFOR

  IF SELECTED SET =
EMPTY

         FOR EACH SEP
IN DEFAULT SET       ;see 13.5.2

               IF
Positive.Type=TRUE OR

                Positive.Path=TRUE
OR

                Positive.MediaType=TRUE

                      ADD
SEP TO SELECTED SET

               ENDIF

         ENDFOR

  ENDIF

ENDIF

IF SELECTED SET !=
EMPTY

  RETURN SELECTED SET

ELSE

  RETURN DEFAULT SET

ENDIF