[BACK]Return to list.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / int-parts / datatype

File: [local] / OpenXM / src / asir-doc / int-parts / datatype / list.texi (download)

Revision 1.1, Mon Apr 23 05:45:36 2001 UTC (23 years, 2 months ago) by noro
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

Risa/Asir manual on the internal specifications.

@comment $OpenXM: OpenXM/src/asir-doc/int-parts/datatype/list.texi,v 1.1 2001/04/23 05:45:36 noro Exp $
@section List

@example
typedef struct oNODE @{    list $B$rI=$9$?$a$N(B node
    pointer body;         node $B$NFbMF(B
    struct oNODE *next;   $B<!$X$N(B pointer
@} *NODE;

typedef struct oLIST @{     Risa list object
    short id;              $B<1JL;R(B (=O_LIST)        
    short pad;
    struct oNODE *body;    list $BK\BN(B
@} *LIST;
@end example
@noindent
list $B9=B$$O(B engine $BFbIt$K$*$$$FB?MQ$5$l$k(B. $BA0=R$N(B @code{DCP}, @code{VL} 
$B$J$I$OMQES$,FC<l2=$5$l$?$b$N$G$"$k$,(B, $B0lHL$K$O(B @code{NODE} $B$,MQ$$$i$l(B
$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
$B$N3F(B node $B$N(B body $B$O(B Risa object $B$r;X$7$F$$$kI,MW$,$"$k(B. 
@subsection $B%j%9%H$N@8@.(B
@example
#include "ca.h"

MKNODE(n,b,nn)  (macro; NODE n,nn; pointer b)
body = b, next = nn $B$J$k(B NODE n $B$r@8@.$9$k(B.

MKLIST(a,b) (macro; NODE b; LIST a)
body=b $B$J$k(B LIST a $B$r@8@.$9$k(B. 

NEXTNODE(r,c) (macro; NODE r,c)
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
$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, 
$B6u(B node $B$,@8@.$5$l(B, r $B$*$h$S(B c $B$O$=$N(B node $B$r;X$9(B. 
@end example

@code{MKNODE} $B$O(B node $B$N@hF,$K%G!<%?$rDI2C$7$F$$$/$H$-$K(B
$BMQ$$$k(B. $B5U$K(B, node $B$NKvHx$K%G!<%?$rDI2C$7$F$$$/$K$O(B @code{NEXTNODE} $B$r(B
$BMQ$$$k(B. 

@example
NODE r, c;

for ( r = 0; ...; ... ) @{
    NEXTNODE(r,c);
    c->body = ...;
@}
if ( r ) c->next = 0;
@end example

$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.