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

Annotation of OpenXM/src/asir-doc/int-parts/inter.texi, Revision 1.2

1.2     ! noro        1: @comment $OpenXM: OpenXM/src/asir-doc/int-parts/inter.texi,v 1.1 2001/04/23 05:45:35 noro Exp $
1.1       noro        2: @chapter Interpreter
                      3:
1.2     ! noro        4: \JP @section Interpreter $B$N9=@.(B
        !             5: \EG @section Configuration of the interpreter
1.1       noro        6:
1.2     ! noro        7: \BJP
1.1       noro        8: interpreter $B$O(B, $BCf4V8@8l$N9=@.MWAG$G$"$k(B @code{FNODE} ($B<0(B), @code{SNODE}
                      9: ($BJ8(B) $B$=$l$>$l$N2r<a$r9T$&4X?t72$+$i$J$k(B.
1.2     ! noro       10: \E
        !            11: \BEG
        !            12: \E
1.1       noro       13:
1.2     ! noro       14: \JP @subsection $B<0$N2r<a<B9T(B
        !            15: \EG @subsection Interpreting formulae
1.1       noro       16:
                     17: @example
                     18: pointer eval(FNODE f)
1.2     ! noro       19: \JP $B<0(B f $B$N2r<a<B9T(B
        !            20: \EG
1.1       noro       21:
                     22: pointer evalf(FUNC f,FNODE a, FNODE opt)
1.2     ! noro       23: \JP $B4X?t(B f $B$N<B9T(B
        !            24: \EG
1.1       noro       25:
1.2     ! noro       26: \BJP
1.1       noro       27: struct oAFUNC @{    $B;;=Q1i;;%F!<%V%k(B
                     28:   void (*add)();   $BOB(B
                     29:   void (*sub)();   $B:9(B
                     30:   void (*mul)();   $B@Q(B
                     31:   void (*div)();   $B>&(B
                     32:   void (*pwr)();   $BQQ(B
                     33:   void (*chsgn)(); $BId9fH?E>(B
                     34:   void (*comp)();  $BHf3S(B
                     35: @};
1.2     ! noro       36: \E
        !            37: \BEG
        !            38: struct oAFUNC @{
        !            39:   void (*add)();
        !            40:   void (*sub)();
        !            41:   void (*mul)();
        !            42:   void (*div)();
        !            43:   void (*pwr)();
        !            44:   void (*chsgn)();
        !            45:   void (*comp)();
        !            46: @};
        !            47: \E
1.1       noro       48:
                     49: struct oAFUNC afunc[] = @{
                     50: /* ??? */    @{0,0,0,0,0,0,0@},
                     51: /* O_N */    @{addnum,subnum,mulnum,divnum,pwrnum,chsgnnum,compnum@},
                     52: /* O_P */    @{addp,subp,mulp,divr,pwrp,chsgnp,compp@},
                     53: /* O_R */    @{addr,subr,mulr,divr,pwrr,chsgnr,compr@},
                     54: /* O_LIST */ @{notdef,notdef,notdef,notdef,notdef,notdef,complist@},
                     55: /* O_VECT */ @{addvect,subvect,mulvect,divvect,notdef,chsgnvect,compvect@},
                     56: /* O_MAT */  @{addmat,submat,mulmat,divmat,pwrmat,chsgnmat,compmat@},
                     57: /* O_STR */  @{addstr,notdef,notdef,notdef,notdef,notdef,compstr@},
                     58: /* O_COMP */ @{addcomp,subcomp,mulcomp,divcomp,pwrcomp,chsgncomp,compcomp@},
                     59: /* O_DP */   @{addd,subd,muld,divsdc,notdef,chsgnd,compd@},
                     60: @};
                     61:
                     62: void arf_add(VL vl,Obj a,Obj b,Obj *r)
                     63: *r = a+b
                     64:
                     65: void arf_sub(VL vl,Obj a,Obj b,Obj *r)
                     66: *r = a-b
                     67:
                     68: void arf_mul(VL vl,Obj a,Obj b,Obj *r)
                     69: *r = a*b
                     70:
                     71: void arf_div(VL vl,Obj a,Obj b,Obj *r)
                     72: *r = a/b
                     73:
                     74: void arf_remain(VL vl,Obj a,Obj b,Obj *r)
                     75: *r = a%b
                     76:
                     77: void arf_pwr(VL vl,Obj a,Obj b,Obj *r)
                     78: *r = a^b
                     79:
                     80: void arf_chsgn(Obj a,Obj *r)
                     81: *r = -a
                     82:
                     83: int arf_comp(VL vl,Obj a,Obj b)
                     84: return 1 if a>b; -1 if a<b; 0 if a=b;
                     85: @end example
                     86:
1.2     ! noro       87: \BJP
1.1       noro       88: @code{eval} $B$O(B, $BI,MW$K1~$8$F<+J,<+?H$r8F$S=P$7$J$,$i<0$rI>2A$9$k(B.
                     89: $B;MB'1i;;$K$D$$$F$O;;=Q1i;;%F!<%V%k$KEPO?$5$l$F$$$k4X?t$r(B, Risa object
                     90: $B$N<1JL;R$K=>$C$F8F$S=P$9(B. $B4X?t8F$S=P$7$,$"$C$?>l9g(B, @code{evalf} $B$,(B
                     91: $B8F$S=P$5$l$k(B. $B0z?t$r<0$N%j%9%H$H$7$FI>2A$7$F(B Risa object $B$KJQ49$7$?(B
                     92: $B$"$H(B, $B$=$l$r0z?t$H$7$F<B:]$K4X?t$NCM$NI>2A$r9T$&(B. $B4X?t$,AH$_9~$_$N>l9g(B,
                     93: $BAH$_9~$_4X?t$r8F$S=P$;$P$h$$(B. $B4X?t$,%f!<%6Dj5A4X?t$N>l9g(B, $B6I=jJQ?tG[Ns(B
                     94: $B$N@8@.(B, $B2>0z?t$X$N<B0z?t$NBeF~$N8e(B, $B4X?tDj5AK\BN$NJ8%j%9%H$r(B, $B<!$K=R$Y$k(B
                     95: $BJ8$N2r<a<B9T4X?t$GI>2A$7$F$$$/(B.
1.2     ! noro       96: \E
        !            97: \BEG
        !            98: \E
1.1       noro       99:
1.2     ! noro      100: \JP @subsection $BJ8$N2r<a<B9T(B
        !           101: \EG @subsection Interpreting sentences
1.1       noro      102:
                    103: @example
                    104: pointer evalstat(SNODE f)
1.2     ! noro      105: \JP $BJ8$N2r<a<B9T(B
        !           106: \EG
1.1       noro      107: @end example
                    108:
1.2     ! noro      109: \BJP
1.1       noro      110: $BJ8$r2r<a<B9T$9$k>l9g(B, $BJ8Cf$N<0$O(B @code{eval} $B$GI>2A$9$k(B. $B$^$?(B, $BJ8$,J#J8(B
                    111: $B$N>l9g$K$O(B @code{evalstat} $B$r:F5"E*$K8F$S=P$7$FI>2A$9$k(B. @code{evalstat}
                    112: $B$N=EMW$J;E;v$H$7$F(B, @samp{if}, @samp{for} $B$J$I$N@)8fJ8$N2r<a<B9T$,$"$k(B.
                    113: $B$^$?(B, $B<!>O$G=R$Y$k(B debugger $B$H6(D4$7$F(B, $B%V%l!<%/%]%$%s%H>pJs(B,
                    114: $B%9%F%C%W<B9T>pJs$N4IM}$r9T$&(B. $B0J2<$G(B, $B<g$J$b$N$K$D$$$F(B, $B<B:]$K$I$N$h$&$K(B
                    115: $BJ8$,2r<a<B9T$5$l$k$+$r<($9(B.
1.2     ! noro      116: \E
        !           117: \BEG
        !           118: \E
1.1       noro      119:
1.2     ! noro      120: \JP @subsubsection $BC1J8(B
        !           121: \EG @subsubsection Single statement
1.1       noro      122:
                    123: @example
                    124:   case S_SINGLE:
                    125:     val = eval((FNODE)FA0(f)); break;
                    126: @end example
                    127:
1.2     ! noro      128: \BJP
1.1       noro      129: $B$3$N>l9g(B, @code{f} $B$N0z?t$O0l$D$N<0$G$"$j(B, @code{eval()} $B$r8F$S=P$9$3$H(B
                    130: $B$G<0$NCM$,7W;;$5$l$k(B.
1.2     ! noro      131: \E
        !           132: \BEG
        !           133: \E
1.1       noro      134:
1.2     ! noro      135: \JP @subsubsection $BJ#J8(B
        !           136: \EG @subsubsection Block
1.1       noro      137:
                    138: @example
                    139:   case S_CPLX:
                    140:     for ( tn = (NODE)FA0(f); tn; tn = NEXT(tn) ) @{
                    141:       if ( BDY(tn) )
                    142:          val = evalstat((SNODE)BDY(tn));
                    143:          if ( f_break || f_return || f_continue )
                    144:            break;
                    145:     @}
                    146:     break;
                    147: @end example
                    148:
1.2     ! noro      149: \BJP
1.1       noro      150: $B$3$N>l9g(B, @code{f} $B$N0z?t$OJ8%j%9%H$rI=$9(B @code{NODE} $B$G$"$k(B.
                    151: $B$h$C$F(B, $B3F(B @code{NODE} $B$+$i=g$KJ8$r<h$j=P$7$F(B, @code{evalstat()}
                    152: $B$r8F$S=P$9(B. $B3FJ8$r<B9T$7$?$"$H(B, @code{break}, @code{return},
                    153: @code{continue} $B%U%i%0$r%A%'%C%/$7(B, $B$I$l$+$,(B on $B$N>l9g$K$O(B
                    154: $B;D$j$NJ8$r<B9T$7$J$$(B.
1.2     ! noro      155: \E
        !           156: \BEG
        !           157: \E
1.1       noro      158:
1.2     ! noro      159: \JP @subsubsection If $BJ8(B
        !           160: \EG @subsubsection If statement
1.1       noro      161:
                    162: @example
                    163:   case S_IFELSE:
                    164:     if ( evalnode((NODE)FA1(f)) )
                    165:       val = evalstat((SNODE)FA2(f));
                    166:     else if ( FA3(f) )
                    167:       val = evalstat((SNODE)FA3(f));
                    168:       break;
                    169: @end example
                    170:
1.2     ! noro      171: \BJP
1.1       noro      172: $BBh(B 0 $B0z?t$O%@%_!<(B, $B>r7o<0%j%9%H$G$"$kBh(B 1 $B0z?t$r(B @code{evalnode()} $B$GI>(B
                    173: $B2A$9$k(B. @code{evalnode()} $B$O%j%9%H$N:G8eHx$N<0$NCM$rJV$9$N$G(B, $B$=$NCM$,Hs(B
                    174: $BNm$N>l9gBh(B 2 $B0z?t$r(B @code{evalstat()} $B$G<B9T(B, $BNm$N>l9g(B, $B$b$7Bh(B 3 $B0z?t$,(B0
                    175: $B$G$J$1$l$P$=$l$r<B9T$9$k(B. @code{else} $B$J$7$N>l9g(B, $BBh(B 3 $B0z?t$O(B 0 $B$G$"$k(B.
1.2     ! noro      176: \E
        !           177: \BEG
        !           178: \E
1.1       noro      179:
1.2     ! noro      180: \JP @subsubsection For $BJ8(B
        !           181: \EG @subsubsection For statement
1.1       noro      182:
                    183: @example
                    184:   case S_FOR:
                    185:     evalnode((NODE)FA1(f));
                    186:     while ( 1 ) @{
                    187:       if ( !evalnode((NODE)FA2(f)) )
                    188:         break;
                    189:       val = evalstat((SNODE)FA4(f));
                    190:       if ( f_break || f_return )
                    191:         break;
                    192:       f_continue = 0;
                    193:       evalnode((NODE)FA3(f));
                    194:    @}
                    195:    f_break = 0; break;
                    196: @end example
                    197:
1.2     ! noro      198: \BJP
1.1       noro      199: $BBh(B 0 $B0z?t$O%@%_!<(B, $BBh(B 1 $B0z?t$O=i4|2=$N$?$a$N<0%j%9%H$G$"$k(B. $B$^$:$3$l$r(B
                    200: @code{evalnode()} $B$G<B9T$7$?$"$H(B, $B%k!<%W$r<B9T$9$k(B. $B$^$:(B, $B>r7o<0%j%9%H$G(B
                    201: $B$"$kBh(B 2 $B0z?t$rI>2A$7(B, $B$=$N:G8eHx$N<0$NCM$,Nm$N>l9g(B, $B%k!<%W$rH4$1$k(B. $BHs(B
                    202: $BNm$N>l9g(B, $B%k!<%WK\BN$G$"$kBh(B 4 $B0z?t$r(B @code{evalstat()} $B$G<B9T$9$k(B. $B$3$N(B
                    203: $B<B9T$K$*$$$F(B, break, continue, return $BJ8$,8=$l$?>l9g(B, $B$3$l$i$KBP1~$9$k%U(B
                    204: $B%i%0$,(B on $B$K$J$C$F$$$k(B. C $B8@8l$K$*$1$k5,Dj$K=>$$(B, break, return$B$N>l9g$K(B
                    205: $B$O%k!<%W$rH4$1$k(B. $B$5$i$K(B break $B$N>l9g$K$O(B, $B%k!<%W$r0lCJH4$1$?$3$H$GLrL\(B
                    206: $B$r2L$?$7$F$$$k$?$a(B, $B%U%i%0$r(B off $B$K$9$k(B.  continue $B$N>l9g$K$O(B, $BC1$K(B
                    207: continue $B%U%i%0$r(B off $B$K$9$k(B. $B:G8e$K%k!<%W$N:G8e$K<B9T$9$k<0%j%9%H$G$"$k(B
                    208: $BBh(B 3 $B0z?t$r<B9T$7$F%k!<%W$N@hF,$KLa$k(B.
1.2     ! noro      209: \E
        !           210: \BEG
        !           211: \E
1.1       noro      212:
1.2     ! noro      213: \JP @section $B%f!<%64X?t$N<B9T(B
        !           214: \EG @section Executing user defined functions
1.1       noro      215:
                    216: @example
                    217: pointer evalf(FUNC f, FNODE a, FNODE opt)
1.2     ! noro      218: \JP $B4X?t(B f $B$r0z?t(B a, option opt $B$G<B9T(B
        !           219: \EG
1.1       noro      220: @end example
                    221:
1.2     ! noro      222: \BJP
1.1       noro      223: @code{evalf()} $B$OAH$_9~$_4X?t(B, $B%f!<%64X?t6&$K<B9T$G$-$k(B. @code{evalf()}
                    224: $B$O<0$N2r<a<B9T$N%5%V%k!<%A%s$G$"$k$,(B, $B%f!<%64X?t$N<B9T$O(B, $B<B:]$K$OJ8$N2r(B
                    225: $B<a<B9T$G$"$j(B, $B$^$?(B, $B%W%m%0%i%`JQ?t$NA`:n$r4^$`$d$dJ#;($J<jB3$-$G$"$k(B.
1.2     ! noro      226: \E
        !           227: \BEG
        !           228: \E
1.1       noro      229:
1.2     ! noro      230: \BJP
1.1       noro      231: @example
                    232:     /* $B%f!<%64X?t$N2r<a<B9T(B */
                    233:   case A_USR:
                    234:     /* $B0z?t%j%9%H$rI>2A$7$F(B LIST $B%*%V%8%'%/%H$H$9$k(B */
                    235:     args = (LIST)eval(a);
                    236:     /* $B%m!<%+%kJQ?t(B template */
                    237:     pvs = f->f.usrf->pvs;
                    238:     if ( PVSS ) @{
                    239:     /* $B4{$K4X?tFb$N>l9g(B, $B$=$N4X?tFb$G$N8=4X?t8F$S=P$7$N0LCV$N5-O?(B */
                    240:       ((VS)BDY(PVSS))->at = evalstatline;
                    241:       level = ((VS)BDY(PVSS))->level+1;
                    242:     @} else
                    243:       level = 1;
                    244:     /* $B%9%?%C%/%U%l!<%`$r@8@.(B, $B%j%9%H$KDI2C(B, $B8=:_$NJQ?tG[Ns$H$9$k(B */
                    245:     MKNODE(tn,pvs,PVSS); PVSS = tn;
                    246:     CPVS = (VS)ALLOCA(sizeof(struct oVS)); BDY(PVSS) = (pointer)CPVS;
                    247:     CPVS->usrf = f; CPVS->n = CPVS->asize = pvs->n;
                    248:     CPVS->level = level; CPVS->opt = opts;
                    249:     if ( CPVS->n ) @{
                    250:       CPVS->va = (struct oPV *)ALLOCA(CPVS->n*sizeof(struct oPV));
                    251:       bcopy((char *)pvs->va,(char *)CPVS->va,
                    252:       (int)(pvs->n*sizeof(struct oPV)));
                    253:     @}
                    254:     /* $B%9%F%C%W<B9T$N$?$a$N%l%Y%k$r%"%C%W%G!<%H(B */
                    255:     if ( nextbp )
                    256:       nextbplevel++;
                    257:     /* $B2>0z?t$K<B0z?t$rBeF~(B */
                    258:     for ( tn = f->f.usrf->args, sn = BDY(args);
                    259:       sn; tn = NEXT(tn), sn = NEXT(sn) )
                    260:       ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn));
                    261:     /* $B4X?tK\BN$r<B9T(B */
                    262:     val = evalstat((SNODE)BDY(f->f.usrf));
                    263:     /* $B%U%i%0(B, $B%9%?%C%/%U%l!<%`$r%j%;%C%H(B */
                    264:     f_return = f_break = f_continue = 0; poppvs();
                    265:     break;
                    266: @end example
1.2     ! noro      267: \E
1.1       noro      268:
1.2     ! noro      269: \BEG
        !           270: @example
        !           271:     /* $B%f!<%64X?t$N2r<a<B9T(B */
        !           272:   case A_USR:
        !           273:     /* $B0z?t%j%9%H$rI>2A$7$F(B LIST $B%*%V%8%'%/%H$H$9$k(B */
        !           274:     args = (LIST)eval(a);
        !           275:     /* $B%m!<%+%kJQ?t(B template */
        !           276:     pvs = f->f.usrf->pvs;
        !           277:     if ( PVSS ) @{
        !           278:     /* $B4{$K4X?tFb$N>l9g(B, $B$=$N4X?tFb$G$N8=4X?t8F$S=P$7$N0LCV$N5-O?(B */
        !           279:       ((VS)BDY(PVSS))->at = evalstatline;
        !           280:       level = ((VS)BDY(PVSS))->level+1;
        !           281:     @} else
        !           282:       level = 1;
        !           283:     /* $B%9%?%C%/%U%l!<%`$r@8@.(B, $B%j%9%H$KDI2C(B, $B8=:_$NJQ?tG[Ns$H$9$k(B */
        !           284:     MKNODE(tn,pvs,PVSS); PVSS = tn;
        !           285:     CPVS = (VS)ALLOCA(sizeof(struct oVS)); BDY(PVSS) = (pointer)CPVS;
        !           286:     CPVS->usrf = f; CPVS->n = CPVS->asize = pvs->n;
        !           287:     CPVS->level = level; CPVS->opt = opts;
        !           288:     if ( CPVS->n ) @{
        !           289:       CPVS->va = (struct oPV *)ALLOCA(CPVS->n*sizeof(struct oPV));
        !           290:       bcopy((char *)pvs->va,(char *)CPVS->va,
        !           291:       (int)(pvs->n*sizeof(struct oPV)));
        !           292:     @}
        !           293:     /* $B%9%F%C%W<B9T$N$?$a$N%l%Y%k$r%"%C%W%G!<%H(B */
        !           294:     if ( nextbp )
        !           295:       nextbplevel++;
        !           296:     /* $B2>0z?t$K<B0z?t$rBeF~(B */
        !           297:     for ( tn = f->f.usrf->args, sn = BDY(args);
        !           298:       sn; tn = NEXT(tn), sn = NEXT(sn) )
        !           299:       ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn));
        !           300:     /* $B4X?tK\BN$r<B9T(B */
        !           301:     val = evalstat((SNODE)BDY(f->f.usrf));
        !           302:     /* $B%U%i%0(B, $B%9%?%C%/%U%l!<%`$r%j%;%C%H(B */
        !           303:     f_return = f_break = f_continue = 0; poppvs();
        !           304:     break;
        !           305: @end example
        !           306: \E
1.1       noro      307:
1.2     ! noro      308: \JP @section $B%G%P%C%,(B
        !           309: \EG @section Debugger
        !           310:
        !           311: \BJP
1.1       noro      312: $B%f!<%64X?t$N<B9T$OJ8$rC10L$H$7$F9T$o$l$k$,(B, $BJ8$N<B9TA0$K%G%P%C%0%b!<%I$K(B
                    313: $BF~$k>l9g$,$"$k(B. $B%G%P%C%0%b!<%I$G$O(B, $B0J2<$N$h$&$J5!G=$,Ds6!$5$l$k(B.
1.2     ! noro      314: \E
        !           315: \BEG
        !           316: \E
1.1       noro      317:
                    318: @itemize @bullet
1.2     ! noro      319: \BJP
1.1       noro      320: @item $B%V%l!<%/%]%$%s%H$N@_Dj(B
                    321: @item $B%9%F%C%W<B9T(B
                    322: @item $BJQ?t$NCM$N;2>H(B, $BJQ99(B
                    323: @item $B4X?t$N<B9T(B
                    324: @item $B4X?t8F$S=P$7Ns$NI=<((B
                    325: @item $B%=!<%9$N%j%9%F%#%s%0(B
1.2     ! noro      326: \E
        !           327: \BEG
        !           328: @item
        !           329: @item
        !           330: @item
        !           331: @item
        !           332: @item
        !           333: @item
        !           334: \E
1.1       noro      335: @end itemize
                    336:
1.2     ! noro      337: \JP @subsection $B%G%P%C%0%b!<%I$X$N0\9T(B
        !           338: \EG @subsection Entering the debug mode
1.1       noro      339:
1.2     ! noro      340: \JP $B%G%P%C%0%b!<%I$X$N0\9T$O<!$N$h$&$J>u67$G5/$3$k(B.
        !           341: \EG
1.1       noro      342:
                    343: @itemize @bullet
1.2     ! noro      344: \BJP
1.1       noro      345: @item @code{debug} $B4X?t$,<B9T$5$l$?>l9g(B.
                    346: @item $B%-!<%\!<%I3d$j9~$_$KBP$9$k%a%K%e!<$G(B @samp{d} $B$rA*Br$7$?>l9g(B
                    347: @item $B<B9TCf$K%(%i!<$r5/$3$7$?>l9g(B
                    348: @item $B%V%l!<%/%]%$%s%H$KC#$7$?>l9g(B
                    349: @item $B%G%P%C%0%b!<%I$+$i%9%F%C%W<B9T$,;XDj$5$l$?>l9g(B
                    350:
                    351: $BJ8$N<B9TA0$K%9%F%C%W<B9T%U%i%0$,D4$Y$i$l(B, $B$=$NCM$K$h$j%G%P%C%0%b!<%I$K0\(B
                    352: $B9T$9$k(B.
                    353:
                    354: @item $BAH$_9~$_4X?t(B @code{error()} $B$,<B9T$5$l$?>l9g(B
1.2     ! noro      355: \E
        !           356: \BEG
        !           357: @item
        !           358: @item
        !           359: @item
        !           360: @item
        !           361: @item
        !           362:
        !           363: @item
        !           364: \E
1.1       noro      365: @end itemize
                    366:
1.2     ! noro      367: \JP @subsection $B%9%F%C%W<B9T(B
        !           368: \EG @subsection Stepwise execution of a program
1.1       noro      369:
1.2     ! noro      370: \BJP
1.1       noro      371: $B%G%P%C%,$K$*$1$k%9%F%C%W<B9T%3%^%s%I$K$O(B @code{step} $B$H(B @code{next}
                    372: $B$,$"$k(B. $B$3$l$i$O$$$:$l$b<!$NJ8$r<B9T$7$h$&$H$9$k$,(B, $B<!$N$h$&$J0c$$$,$"$k(B.
1.2     ! noro      373: \E
        !           374: \BEG
        !           375: \E
1.1       noro      376:
                    377: @table @code
                    378: @item next
1.2     ! noro      379: \JP B$B<!$NJ8$,%f!<%64X?t$r4^$s$G$$$F$b(B, $BJ8$4$H<B9T$7(B, $B%G%P%C%0%b!<%I$KLa$k(B.
        !           380: \EG
1.1       noro      381: @item step
1.2     ! noro      382: \JP $B<!$NJ8$,%f!<%64X?t$r4^$s$G$$$?>l9g(B, $B:G=i$KI>2A$5$l$?%f!<%64X?t$N@hF,$G%G%P%C%0%b!<%I$KLa$k(B.
        !           383: \EG
1.1       noro      384: @end table
                    385:
1.2     ! noro      386: \JP $B$3$N5!G=$r<B8=$9$k$?$a$K(B, $BFs$D$NJQ?t$,MQ0U$7$F$"$k(B.
        !           387: \EG
1.1       noro      388:
                    389: @table @code
                    390: @item nextbp
                    391:
1.2     ! noro      392: \BJP
1.1       noro      393: $B$3$NJQ?t$,(B 0 $B$G$J$$$H$-(B, $B%G%P%C%,$+$i%9%F%C%W<B9T%3%^%s%I$N$b$H$G(B,
                    394: $B%$%s%?%W%j%?$,<B9TCf$G$"$k$3$H$r<($9(B.
1.2     ! noro      395: \E
        !           396: \BEG
        !           397: \E
1.1       noro      398:
                    399: @item nextbplevel
                    400:
1.2     ! noro      401: \BJP
1.1       noro      402: $B%9%F%C%W<B9TCf$K%f!<%64X?t<B9T$KF~$k$H$-(B 1 $BA}$((B, $B%f!<%64X?t$+$iH4$1$k$H$-(B
                    403: 1 $B8:$k(B.
1.2     ! noro      404: \E
        !           405: \BEG
        !           406: \E
        !           407:
1.1       noro      408: @end table
                    409:
1.2     ! noro      410: \JP $B$^$?(B @code{evalstat()} $B$N@hF,$G$O<!$N$h$&$J%3!<%I$,<B9T$5$l$F$$$k(B.
        !           411: \EG
1.1       noro      412:
                    413: @example
1.2     ! noro      414: \JP  /* $B%9%F%C%W<B9TCf$G(B nextbplevel $B$,Hs@5(B */
        !           415: \EG  /* */
1.1       noro      416:   if ( nextbp && nextbplevel <= 0 && f->id != S_CPLX ) @{
                    417:     nextbp = 0;
1.2     ! noro      418: \JP  /* $B%G%P%C%0%b!<%I$KF~$k(B */
        !           419: \EG  /* */
1.1       noro      420:     bp(f);
                    421:   @}
                    422: @end example
                    423:
1.2     ! noro      424: \JP $B$3$l$i$K$h$j%9%F%C%W<B9T$O<!$N$h$&$K<B8=$5$l$k(B.
        !           425: \EG
1.1       noro      426:
                    427: @table @code
                    428: @item next
1.2     ! noro      429: \BJP
1.1       noro      430: @code{nextbp = 1}, @code{nextbplevel = 0} $B$H$7$F<B9T$r7QB3$9$k(B.
                    431: $BJ8$N<B9TCf$K4X?t$KF~$k$H(B, @code{nextbplevel} $B$,@5$H$J$k$N$G(B, $BJ8Cf(B
                    432: $B$N4X?t<B9TCf$O%G%P%C%0%b!<%I$KF~$i$J$$(B. $BJ8$N<B9T$,=*$C$F<!$N(B
                    433: $BJ8$N@hF,$KC#$7$?$H$-(B, @code{nextbp = 0}, @code{nextbplevel = 0}
                    434: $B$H$J$C$F$$$k$?$a%G%P%C%0%b!<%I$KF~$k(B.
1.2     ! noro      435: \E
        !           436: \BEG
        !           437: \E
1.1       noro      438:
                    439: @item step
1.2     ! noro      440: \BJP
1.1       noro      441: @code{nextbp = 1}, @code{nextbplevel = -1} $B$H$7$F<B9T$r7QB3$9$k(B.
                    442: $BJ8$N<B9TCf$K4X?t$KF~$C$F$b(B, @code{nextbplevel = 0} $B$J$N$G(B
                    443: $B%G%P%C%0%b!<%I$KF~$k(B.
1.2     ! noro      444: \E
        !           445: \BEG
        !           446: \E
1.1       noro      447: @end table
                    448:
1.2     ! noro      449: \JP @subsection $B%V%l!<%/%]%$%s%H$N@_Dj(B
        !           450: \EG @subsection Setting break points
1.1       noro      451:
1.2     ! noro      452: \BJP
1.1       noro      453: $B%V%l!<%/%]%$%s%H$N@_Dj$O(B, $BBP>]$H$J$kJ8$NA0$K(B, $B%V%l!<%/%]%$%s%HJ8(B
                    454: ($BJ8<1JL;R(B @code{S_BP} $B$rA^F~$9$k$3$H$G9T$&(B. $B%V%l!<%/%]%$%s%HJ8$O(B
                    455: $B0z?t$H$7$FBP>]$H$J$kJ8(B, $B%V%l!<%/%]%$%s%H$KF~$k$?$a$N>r7o<0$r;}$D(B.
                    456: $B%V%l!<%/%]%$%s%HJ8$,<B9T$5$l$?>l9g(B, $B>r7o$,$J$$$+(B, $B$^$?$O>r7o<0(B
                    457: $B$,??(B (0 $B$G$J$$(B) $B>l9g$K(B @code{nextbp = 1}, @code{nextbplevel = 1}
                    458: $B$H$7$F(B, $B0z?t$G$"$kJ8$r<B9T$9$k(B. $B4{$K=R$Y$?$3$H$h$j(B,
                    459: @code{evalstat()} $B$N@hF,$G%V%l!<%/%]%$%s%H$KF~$k$3$H$K$J$k(B.
1.2     ! noro      460: \E
        !           461: \BEG
        !           462: \E
1.1       noro      463:
1.2     ! noro      464: \JP @subsection $B%G%P%C%0%b!<%I$K$*$1$kJQ?t$N;2>H(B
        !           465: \EG @subsection Inspecting variables in the debug mode
1.1       noro      466:
1.2     ! noro      467: \BJP
1.1       noro      468: $B8=:_<B9TCf$N4X?t$O(B, $B$=$N4X?t9=B$BN$X$N%]%$%s%?(B ($B7?(B @code{FUNC}) $B$,(B
                    469: @code{tagetf} $B$J$kJQ?t$KEPO?$5$l$F$$$k(B. $B8=:_<B9TCf$N4X?t$,%f!<%64X?t$N>l(B
                    470: $B9g(B, $BBP1~$9$k%W%m%0%i%`JQ?t%9%?%C%/$O(B @code{CPVS} $B$KEPO?$5$l$F$$$k(B.
                    471:
                    472: $B%H%C%W%l%Y%k$+$i$=$N4X?t$K;j$k8F$S=P$7Ns$KBP1~$9$k%W%m%0%i%`JQ?t%9%?%C%/(B
                    473: $B%j%9%H$O(B, node $BJQ?t(B @code{PVSS} $B$KEPO?$5$l$F$$$k(B. $B3F%W%m%0%i%`JQ?t%9%?%C%/(B
                    474: $B$O7?(B @code{oVS} $B$G$"$j(B, $B%f!<%64X?t$r<($9%a%s%P(B @code{usrf} $B$r;}$D(B.
                    475:
                    476: $B0J>e$K$h$j(B, $B8=:_<B9TCf$N4X?t$K;j$k8F$S=P$7NsCf$N4X?tL>(B, $B3F4X?t$K$*$1$k(B
                    477: $BJQ?t$NCM$J$I$K%"%/%;%9$9$k$3$H$,$G$-$k(B.
1.2     ! noro      478: \E
        !           479: \BEG
        !           480: \E

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>