← Prev in month
← Prev in thread
Pseudocode compacting
This was just an exercise I did to compact the pseudocode in XRI
Resolution 2.0 WD11-ED06, section 12.6.
By assuming the semantics of looping constructs in "modern procedural
languages", I was able to save 13 lines.
The new pseudocode is attached, and I'm listing the diff here:
--- sel.old 2007-10-22 22:15:15.000000000 +0000
+++ sel.new 2007-10-22 22:34:30.000000000 +0000
@@ -9,19 +9,11 @@
NEXT SEP
ELSE
SET Positive.x=TRUE
- NEXT SEL
ENDIF
ELSEIF match on this SEL is DEFAULT ;see 10.3.2 & 12.3.4
- IF Positive.x=TRUE ;see 12.3.5
- NEXT SEL
- ELSEIF nodefault="x" ;see 10.3.2
- NEXT SEL
- ELSE
+ IF Positive.x != TRUE AND nodefault != x
;see 12.3.5
SET Default.x=TRUE
- NEXT SEL
ENDIF
- ELSEIF match on this SEL is NEGATIVE ;see 12.3.1
- NEXT SEL
ENDIF
ENDFOR
IF Matched.x=FALSE ;see 12.3.3
@@ -42,10 +34,7 @@
ADD SEP TO DEFAULT SET ;see 12.4.4
ENDIF
ENDFOR
-IF SELECTED SET != EMPTY ;see 12.5.1
- RETURN SELECTED SET
-ENDIF
-IF DEFAULT SET != EMPTY ;see 12.5.2
+IF SELECTED SET = EMPTY ;see 12.5.1
FOR EACH SEP IN DEFAULT SET
IF (Positive.Type=TRUE AND Positive.Path=TRUE) OR
(Positive.Type=TRUE AND Positive.MediaType=TRUE) OR
@@ -53,20 +42,18 @@
ADD SEP TO SELECTED SET
ENDIF
ENDFOR
- IF SELECTED SET != EMPTY
- RETURN SELECTED SET
- ENDIF
- FOR EACH SEP IN DEFAULT SET
- IF Positive.Type=TRUE OR
- Positive.Path=TRUE OR
- Positive.MediaType=TRUE
- ADD SEP TO SELECTED SET
- ENDIF
- ENDFOR
- IF SELECTED SET != EMPTY
- RETURN SELECTED SET
- ELSE
- RETURN DEFAULT SET
+ IF SELECTED SET = EMPTY
+ FOR EACH SEP IN DEFAULT SET
+ IF Positive.Type=TRUE OR
+ Positive.Path=TRUE OR
+ Positive.MediaType=TRUE
+ ADD SEP TO SELECTED SET
+ ENDIF
+ ENDFOR
ENDIF
ENDIF
-RETURN EMPTY SET
+IF SELECTED SET != EMPTY
+ RETURN SELECTED SET
+ELSE
+ RETURN DEFAULT SET
+ENDIF
=wil
← Prev in month
← Prev in thread