home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / lsEstuff / oldarraystuff / newArrayYX.e < prev    next >
Encoding:
Text File  |  1999-09-19  |  1.4 KB  |  73 lines

  1. OPT MODULE
  2.  
  3. MODULE '*xliv'
  4. MODULE '*newArrayX'
  5.  
  6. EXPORT OBJECT newArrayYX
  7.    PRIVATE
  8.    ylist:PTR TO xliv
  9. ENDOBJECT
  10.  
  11. PROC newArrayYX() OF newArrayYX IS NEW self.ylist
  12.  
  13. PROC setE(y, x, value) OF newArrayYX
  14.    DEF xna:PTR TO newArrayX
  15.    DEF ynode:PTR TO xniv
  16.    ynode := self.ylist.find(y)
  17.    IF ynode = NIL
  18.       ynode := self.ylist.create_xniv(y)
  19.       NEW xna.newArrayX()
  20.       ynode.value := xna
  21.    ENDIF
  22.  
  23.    xna.setE(x, value)
  24. ENDPROC
  25.  
  26. PROC getE(y, x) OF newArrayYX
  27.    DEF ynode:PTR TO xniv
  28.    DEF xna:PTR TO newArrayX
  29.    ynode := self.ylist.find(y)
  30.    IF ynode = NIL THEN RETURN NIL
  31.    xna := ynode.value
  32. ENDPROC xna.getE(x)
  33.  
  34. PROC unsetE(y, x) OF newArrayYX
  35.    DEF ynode:PTR TO xniv
  36.    DEF xna:PTR TO newArrayX
  37.    ynode := self.ylist.find(y)
  38.    IF ynode = NIL THEN RETURN NIL
  39.    xna := ynode.value
  40.    xna.unsetE(x)
  41.    IF xna.countX() = NIL
  42.       END xna
  43.       self.ylist.delete_xniv(ynode)
  44.    ENDIF
  45. ENDPROC
  46.  
  47. PROC countY() OF newArrayYX IS self.ylist.count()
  48.  
  49.  
  50.  
  51. PROC clearA() OF newArrayYX
  52.    DEF ynode:PTR TO xniv
  53.    DEF xna:PTR TO newArrayX
  54.    ynode := self.ylist.first()
  55.    WHILE ynode
  56.       xna := ynode.value
  57.       END xna
  58.       self.ylist.delete_xniv(ynode)
  59.       ynode := ynode.next
  60.    ENDWHILE
  61. ENDPROC
  62.  
  63. PROC end() OF newArrayYX
  64.    self.clearA()
  65.    END self.ylist
  66. ENDPROC
  67.  
  68. PROC getnewArrayX(y) OF newArrayYX
  69.    DEF n:PTR TO xniv
  70.    n := self.ylist.find(y)
  71.    IF n = NIL THEN RETURN NIL
  72. ENDPROC n.value
  73.