Annotation of OpenXM/src/asir-doc/int-parts/datatype/list.texi, Revision 1.1
1.1 ! noro 1: @comment $OpenXM$
! 2: @section List
! 3:
! 4: @example
! 5: typedef struct oNODE @{ list $B$rI=$9$?$a$N(B node
! 6: pointer body; node $B$NFbMF(B
! 7: struct oNODE *next; $B<!$X$N(B pointer
! 8: @} *NODE;
! 9:
! 10: typedef struct oLIST @{ Risa list object
! 11: short id; $B<1JL;R(B (=O_LIST)
! 12: short pad;
! 13: struct oNODE *body; list $BK\BN(B
! 14: @} *LIST;
! 15: @end example
! 16: @noindent
! 17: list $B9=B$$O(B engine $BFbIt$K$*$$$FB?MQ$5$l$k(B. $BA0=R$N(B @code{DCP}, @code{VL}
! 18: $B$J$I$OMQES$,FC<l2=$5$l$?$b$N$G$"$k$,(B, $B0lHL$K$O(B @code{NODE} $B$,MQ$$$i$l(B
! 19: $B$k(B. @code{LIST} $B$O(B Risa object $B$H$7$F$N(B list $B$G$"$k(B. $B$3$N>l9g(B, list $BK\BN(B
! 20: $B$N3F(B node $B$N(B body $B$O(B Risa object $B$r;X$7$F$$$kI,MW$,$"$k(B.
! 21: @subsection $B%j%9%H$N@8@.(B
! 22: @example
! 23: #include "ca.h"
! 24:
! 25: MKNODE(n,b,nn) (macro; NODE n,nn; pointer b)
! 26: body = b, next = nn $B$J$k(B NODE n $B$r@8@.$9$k(B.
! 27:
! 28: MKLIST(a,b) (macro; NODE b; LIST a)
! 29: body=b $B$J$k(B LIST a $B$r@8@.$9$k(B.
! 30:
! 31: NEXTNODE(r,c) (macro; NODE r,c)
! 32: r $B$r(B node $B$N@hF,$H$7(B, c $B$r(B node $B$NKvHx$H$9$k$H$-(B, $BKvHx$K6u$N(B node
! 33: $B$rDI2C$7(B, c $B$r$=$N6u(B node $B$r;X$9$h$&$K$9$k(B. r $B$,(B 0 $B$N$H$-(B,
! 34: $B6u(B node $B$,@8@.$5$l(B, r $B$*$h$S(B c $B$O$=$N(B node $B$r;X$9(B.
! 35: @end example
! 36:
! 37: @code{MKNODE} $B$O(B node $B$N@hF,$K%G!<%?$rDI2C$7$F$$$/$H$-$K(B
! 38: $BMQ$$$k(B. $B5U$K(B, node $B$NKvHx$K%G!<%?$rDI2C$7$F$$$/$K$O(B @code{NEXTNODE} $B$r(B
! 39: $BMQ$$$k(B.
! 40:
! 41: @example
! 42: NODE r, c;
! 43:
! 44: for ( r = 0; ...; ... ) @{
! 45: NEXTNODE(r,c);
! 46: c->body = ...;
! 47: @}
! 48: if ( r ) c->next = 0;
! 49: @end example
! 50:
! 51: $B$3$l$K$h$j(B, list $B$NKvHx$K%G!<%?$rDI2C$7$J$,$i(B list $B$r?-$P$9$3$H$,$G$-$k(B.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>