version 1.1, 2001/04/23 05:45:35 |
version 1.2, 2003/04/19 10:36:29 |
|
|
@comment $OpenXM$ |
@comment $OpenXM: OpenXM/src/asir-doc/int-parts/inter.texi,v 1.1 2001/04/23 05:45:35 noro Exp $ |
@chapter Interpreter |
@chapter Interpreter |
|
|
@section Interpreter $B$N9=@.(B |
\JP @section Interpreter $B$N9=@.(B |
|
\EG @section Configuration of the interpreter |
|
|
|
\BJP |
interpreter $B$O(B, $BCf4V8@8l$N9=@.MWAG$G$"$k(B @code{FNODE} ($B<0(B), @code{SNODE} |
interpreter $B$O(B, $BCf4V8@8l$N9=@.MWAG$G$"$k(B @code{FNODE} ($B<0(B), @code{SNODE} |
($BJ8(B) $B$=$l$>$l$N2r<a$r9T$&4X?t72$+$i$J$k(B. |
($BJ8(B) $B$=$l$>$l$N2r<a$r9T$&4X?t72$+$i$J$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $B<0$N2r<a<B9T(B |
\JP @subsection $B<0$N2r<a<B9T(B |
|
\EG @subsection Interpreting formulae |
|
|
@example |
@example |
pointer eval(FNODE f) |
pointer eval(FNODE f) |
$B<0(B f $B$N2r<a<B9T(B |
\JP $B<0(B f $B$N2r<a<B9T(B |
|
\EG |
|
|
pointer evalf(FUNC f,FNODE a, FNODE opt) |
pointer evalf(FUNC f,FNODE a, FNODE opt) |
$B4X?t(B f $B$N<B9T(B |
\JP $B4X?t(B f $B$N<B9T(B |
|
\EG |
|
|
|
\BJP |
struct oAFUNC @{ $B;;=Q1i;;%F!<%V%k(B |
struct oAFUNC @{ $B;;=Q1i;;%F!<%V%k(B |
void (*add)(); $BOB(B |
void (*add)(); $BOB(B |
void (*sub)(); $B:9(B |
void (*sub)(); $B:9(B |
Line 24 struct oAFUNC @{ $B;;=Q1i;;%F!<%V%k(B |
|
Line 33 struct oAFUNC @{ $B;;=Q1i;;%F!<%V%k(B |
|
void (*chsgn)(); $BId9fH?E>(B |
void (*chsgn)(); $BId9fH?E>(B |
void (*comp)(); $BHf3S(B |
void (*comp)(); $BHf3S(B |
@}; |
@}; |
|
\E |
|
\BEG |
|
struct oAFUNC @{ |
|
void (*add)(); |
|
void (*sub)(); |
|
void (*mul)(); |
|
void (*div)(); |
|
void (*pwr)(); |
|
void (*chsgn)(); |
|
void (*comp)(); |
|
@}; |
|
\E |
|
|
struct oAFUNC afunc[] = @{ |
struct oAFUNC afunc[] = @{ |
/* ??? */ @{0,0,0,0,0,0,0@}, |
/* ??? */ @{0,0,0,0,0,0,0@}, |
Line 63 int arf_comp(VL vl,Obj a,Obj b) |
|
Line 84 int arf_comp(VL vl,Obj a,Obj b) |
|
return 1 if a>b; -1 if a<b; 0 if a=b; |
return 1 if a>b; -1 if a<b; 0 if a=b; |
@end example |
@end example |
|
|
|
\BJP |
@code{eval} $B$O(B, $BI,MW$K1~$8$F<+J,<+?H$r8F$S=P$7$J$,$i<0$rI>2A$9$k(B. |
@code{eval} $B$O(B, $BI,MW$K1~$8$F<+J,<+?H$r8F$S=P$7$J$,$i<0$rI>2A$9$k(B. |
$B;MB'1i;;$K$D$$$F$O;;=Q1i;;%F!<%V%k$KEPO?$5$l$F$$$k4X?t$r(B, Risa object |
$B;MB'1i;;$K$D$$$F$O;;=Q1i;;%F!<%V%k$KEPO?$5$l$F$$$k4X?t$r(B, Risa object |
$B$N<1JL;R$K=>$C$F8F$S=P$9(B. $B4X?t8F$S=P$7$,$"$C$?>l9g(B, @code{evalf} $B$,(B |
$B$N<1JL;R$K=>$C$F8F$S=P$9(B. $B4X?t8F$S=P$7$,$"$C$?>l9g(B, @code{evalf} $B$,(B |
Line 71 return 1 if a>b; -1 if a<b; 0 if a=b; |
|
Line 93 return 1 if a>b; -1 if a<b; 0 if a=b; |
|
$BAH$_9~$_4X?t$r8F$S=P$;$P$h$$(B. $B4X?t$,%f!<%6Dj5A4X?t$N>l9g(B, $B6I=jJQ?tG[Ns(B |
$BAH$_9~$_4X?t$r8F$S=P$;$P$h$$(B. $B4X?t$,%f!<%6Dj5A4X?t$N>l9g(B, $B6I=jJQ?tG[Ns(B |
$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 |
$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 |
$BJ8$N2r<a<B9T4X?t$GI>2A$7$F$$$/(B. |
$BJ8$N2r<a<B9T4X?t$GI>2A$7$F$$$/(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $BJ8$N2r<a<B9T(B |
\JP @subsection $BJ8$N2r<a<B9T(B |
|
\EG @subsection Interpreting sentences |
|
|
@example |
@example |
pointer evalstat(SNODE f) |
pointer evalstat(SNODE f) |
$BJ8$N2r<a<B9T(B |
\JP $BJ8$N2r<a<B9T(B |
|
\EG |
@end example |
@end example |
|
|
|
\BJP |
$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 |
$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 |
$B$N>l9g$K$O(B @code{evalstat} $B$r:F5"E*$K8F$S=P$7$FI>2A$9$k(B. @code{evalstat} |
$B$N>l9g$K$O(B @code{evalstat} $B$r:F5"E*$K8F$S=P$7$FI>2A$9$k(B. @code{evalstat} |
$B$N=EMW$J;E;v$H$7$F(B, @samp{if}, @samp{for} $B$J$I$N@)8fJ8$N2r<a<B9T$,$"$k(B. |
$B$N=EMW$J;E;v$H$7$F(B, @samp{if}, @samp{for} $B$J$I$N@)8fJ8$N2r<a<B9T$,$"$k(B. |
$B$^$?(B, $B<!>O$G=R$Y$k(B debugger $B$H6(D4$7$F(B, $B%V%l!<%/%]%$%s%H>pJs(B, |
$B$^$?(B, $B<!>O$G=R$Y$k(B debugger $B$H6(D4$7$F(B, $B%V%l!<%/%]%$%s%H>pJs(B, |
$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 |
$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 |
$BJ8$,2r<a<B9T$5$l$k$+$r<($9(B. |
$BJ8$,2r<a<B9T$5$l$k$+$r<($9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsubsection $BC1J8(B |
\JP @subsubsection $BC1J8(B |
|
\EG @subsubsection Single statement |
|
|
@example |
@example |
case S_SINGLE: |
case S_SINGLE: |
val = eval((FNODE)FA0(f)); break; |
val = eval((FNODE)FA0(f)); break; |
@end example |
@end example |
|
|
|
\BJP |
$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 |
$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 |
$B$G<0$NCM$,7W;;$5$l$k(B. |
$B$G<0$NCM$,7W;;$5$l$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsubsection $BJ#J8(B |
\JP @subsubsection $BJ#J8(B |
|
\EG @subsubsection Block |
|
|
@example |
@example |
case S_CPLX: |
case S_CPLX: |
Line 109 pointer evalstat(SNODE f) |
|
Line 146 pointer evalstat(SNODE f) |
|
break; |
break; |
@end example |
@end example |
|
|
|
\BJP |
$B$3$N>l9g(B, @code{f} $B$N0z?t$OJ8%j%9%H$rI=$9(B @code{NODE} $B$G$"$k(B. |
$B$3$N>l9g(B, @code{f} $B$N0z?t$OJ8%j%9%H$rI=$9(B @code{NODE} $B$G$"$k(B. |
$B$h$C$F(B, $B3F(B @code{NODE} $B$+$i=g$KJ8$r<h$j=P$7$F(B, @code{evalstat()} |
$B$h$C$F(B, $B3F(B @code{NODE} $B$+$i=g$KJ8$r<h$j=P$7$F(B, @code{evalstat()} |
$B$r8F$S=P$9(B. $B3FJ8$r<B9T$7$?$"$H(B, @code{break}, @code{return}, |
$B$r8F$S=P$9(B. $B3FJ8$r<B9T$7$?$"$H(B, @code{break}, @code{return}, |
@code{continue} $B%U%i%0$r%A%'%C%/$7(B, $B$I$l$+$,(B on $B$N>l9g$K$O(B |
@code{continue} $B%U%i%0$r%A%'%C%/$7(B, $B$I$l$+$,(B on $B$N>l9g$K$O(B |
$B;D$j$NJ8$r<B9T$7$J$$(B. |
$B;D$j$NJ8$r<B9T$7$J$$(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsubsection If $BJ8(B |
\JP @subsubsection If $BJ8(B |
|
\EG @subsubsection If statement |
|
|
@example |
@example |
case S_IFELSE: |
case S_IFELSE: |
Line 126 pointer evalstat(SNODE f) |
|
Line 168 pointer evalstat(SNODE f) |
|
break; |
break; |
@end example |
@end example |
|
|
|
\BJP |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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. |
$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. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsubsection For $BJ8(B |
\JP @subsubsection For $BJ8(B |
|
\EG @subsubsection For statement |
|
|
@example |
@example |
case S_FOR: |
case S_FOR: |
Line 148 pointer evalstat(SNODE f) |
|
Line 195 pointer evalstat(SNODE f) |
|
f_break = 0; break; |
f_break = 0; break; |
@end example |
@end example |
|
|
|
\BJP |
$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 |
$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 |
@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 |
@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 |
$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 |
$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 |
Line 158 pointer evalstat(SNODE f) |
|
Line 206 pointer evalstat(SNODE f) |
|
$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 |
$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 |
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 |
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 |
$BBh(B 3 $B0z?t$r<B9T$7$F%k!<%W$N@hF,$KLa$k(B. |
$BBh(B 3 $B0z?t$r<B9T$7$F%k!<%W$N@hF,$KLa$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@section $B%f!<%64X?t$N<B9T(B |
\JP @section $B%f!<%64X?t$N<B9T(B |
|
\EG @section Executing user defined functions |
|
|
@example |
@example |
pointer evalf(FUNC f, FNODE a, FNODE opt) |
pointer evalf(FUNC f, FNODE a, FNODE opt) |
$B4X?t(B f $B$r0z?t(B a, option opt $B$G<B9T(B |
\JP $B4X?t(B f $B$r0z?t(B a, option opt $B$G<B9T(B |
|
\EG |
@end example |
@end example |
|
|
|
\BJP |
@code{evalf()} $B$OAH$_9~$_4X?t(B, $B%f!<%64X?t6&$K<B9T$G$-$k(B. @code{evalf()} |
@code{evalf()} $B$OAH$_9~$_4X?t(B, $B%f!<%64X?t6&$K<B9T$G$-$k(B. @code{evalf()} |
$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 |
$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 |
$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. |
$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. |
|
\E |
|
\BEG |
|
\E |
|
|
|
\BJP |
@example |
@example |
/* $B%f!<%64X?t$N2r<a<B9T(B */ |
/* $B%f!<%64X?t$N2r<a<B9T(B */ |
case A_USR: |
case A_USR: |
Line 206 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
Line 264 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
f_return = f_break = f_continue = 0; poppvs(); |
f_return = f_break = f_continue = 0; poppvs(); |
break; |
break; |
@end example |
@end example |
|
\E |
|
|
@section $B%G%P%C%,(B |
\BEG |
|
@example |
|
/* $B%f!<%64X?t$N2r<a<B9T(B */ |
|
case A_USR: |
|
/* $B0z?t%j%9%H$rI>2A$7$F(B LIST $B%*%V%8%'%/%H$H$9$k(B */ |
|
args = (LIST)eval(a); |
|
/* $B%m!<%+%kJQ?t(B template */ |
|
pvs = f->f.usrf->pvs; |
|
if ( PVSS ) @{ |
|
/* $B4{$K4X?tFb$N>l9g(B, $B$=$N4X?tFb$G$N8=4X?t8F$S=P$7$N0LCV$N5-O?(B */ |
|
((VS)BDY(PVSS))->at = evalstatline; |
|
level = ((VS)BDY(PVSS))->level+1; |
|
@} else |
|
level = 1; |
|
/* $B%9%?%C%/%U%l!<%`$r@8@.(B, $B%j%9%H$KDI2C(B, $B8=:_$NJQ?tG[Ns$H$9$k(B */ |
|
MKNODE(tn,pvs,PVSS); PVSS = tn; |
|
CPVS = (VS)ALLOCA(sizeof(struct oVS)); BDY(PVSS) = (pointer)CPVS; |
|
CPVS->usrf = f; CPVS->n = CPVS->asize = pvs->n; |
|
CPVS->level = level; CPVS->opt = opts; |
|
if ( CPVS->n ) @{ |
|
CPVS->va = (struct oPV *)ALLOCA(CPVS->n*sizeof(struct oPV)); |
|
bcopy((char *)pvs->va,(char *)CPVS->va, |
|
(int)(pvs->n*sizeof(struct oPV))); |
|
@} |
|
/* $B%9%F%C%W<B9T$N$?$a$N%l%Y%k$r%"%C%W%G!<%H(B */ |
|
if ( nextbp ) |
|
nextbplevel++; |
|
/* $B2>0z?t$K<B0z?t$rBeF~(B */ |
|
for ( tn = f->f.usrf->args, sn = BDY(args); |
|
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
|
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
|
/* $B4X?tK\BN$r<B9T(B */ |
|
val = evalstat((SNODE)BDY(f->f.usrf)); |
|
/* $B%U%i%0(B, $B%9%?%C%/%U%l!<%`$r%j%;%C%H(B */ |
|
f_return = f_break = f_continue = 0; poppvs(); |
|
break; |
|
@end example |
|
\E |
|
|
|
\JP @section $B%G%P%C%,(B |
|
\EG @section Debugger |
|
|
|
\BJP |
$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 |
$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 |
$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. |
$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. |
|
\E |
|
\BEG |
|
\E |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item $B%V%l!<%/%]%$%s%H$N@_Dj(B |
@item $B%V%l!<%/%]%$%s%H$N@_Dj(B |
@item $B%9%F%C%W<B9T(B |
@item $B%9%F%C%W<B9T(B |
@item $BJQ?t$NCM$N;2>H(B, $BJQ99(B |
@item $BJQ?t$NCM$N;2>H(B, $BJQ99(B |
@item $B4X?t$N<B9T(B |
@item $B4X?t$N<B9T(B |
@item $B4X?t8F$S=P$7Ns$NI=<((B |
@item $B4X?t8F$S=P$7Ns$NI=<((B |
@item $B%=!<%9$N%j%9%F%#%s%0(B |
@item $B%=!<%9$N%j%9%F%#%s%0(B |
|
\E |
|
\BEG |
|
@item |
|
@item |
|
@item |
|
@item |
|
@item |
|
@item |
|
\E |
@end itemize |
@end itemize |
|
|
@subsection $B%G%P%C%0%b!<%I$X$N0\9T(B |
\JP @subsection $B%G%P%C%0%b!<%I$X$N0\9T(B |
|
\EG @subsection Entering the debug mode |
|
|
$B%G%P%C%0%b!<%I$X$N0\9T$O<!$N$h$&$J>u67$G5/$3$k(B. |
\JP $B%G%P%C%0%b!<%I$X$N0\9T$O<!$N$h$&$J>u67$G5/$3$k(B. |
|
\EG |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item @code{debug} $B4X?t$,<B9T$5$l$?>l9g(B. |
@item @code{debug} $B4X?t$,<B9T$5$l$?>l9g(B. |
|
|
@item $B%-!<%\!<%I3d$j9~$_$KBP$9$k%a%K%e!<$G(B @samp{d} $B$rA*Br$7$?>l9g(B |
@item $B%-!<%\!<%I3d$j9~$_$KBP$9$k%a%K%e!<$G(B @samp{d} $B$rA*Br$7$?>l9g(B |
|
|
@item $B<B9TCf$K%(%i!<$r5/$3$7$?>l9g(B |
@item $B<B9TCf$K%(%i!<$r5/$3$7$?>l9g(B |
|
|
@item $B%V%l!<%/%]%$%s%H$KC#$7$?>l9g(B |
@item $B%V%l!<%/%]%$%s%H$KC#$7$?>l9g(B |
|
|
@item $B%G%P%C%0%b!<%I$+$i%9%F%C%W<B9T$,;XDj$5$l$?>l9g(B |
@item $B%G%P%C%0%b!<%I$+$i%9%F%C%W<B9T$,;XDj$5$l$?>l9g(B |
|
|
$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 |
$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 |
$B9T$9$k(B. |
$B9T$9$k(B. |
|
|
@item $BAH$_9~$_4X?t(B @code{error()} $B$,<B9T$5$l$?>l9g(B |
@item $BAH$_9~$_4X?t(B @code{error()} $B$,<B9T$5$l$?>l9g(B |
|
\E |
|
\BEG |
|
@item |
|
@item |
|
@item |
|
@item |
|
@item |
|
|
|
@item |
|
\E |
@end itemize |
@end itemize |
|
|
@subsection $B%9%F%C%W<B9T(B |
\JP @subsection $B%9%F%C%W<B9T(B |
|
\EG @subsection Stepwise execution of a program |
|
|
|
\BJP |
$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} |
$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} |
$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. |
$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. |
|
\E |
|
\BEG |
|
\E |
|
|
@table @code |
@table @code |
@item next |
@item next |
$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. |
\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. |
|
\EG |
@item step |
@item step |
$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. |
\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. |
|
\EG |
@end table |
@end table |
|
|
$B$3$N5!G=$r<B8=$9$k$?$a$K(B, $BFs$D$NJQ?t$,MQ0U$7$F$"$k(B. |
\JP $B$3$N5!G=$r<B8=$9$k$?$a$K(B, $BFs$D$NJQ?t$,MQ0U$7$F$"$k(B. |
|
\EG |
|
|
@table @code |
@table @code |
@item nextbp |
@item nextbp |
|
|
|
\BJP |
$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, |
$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, |
$B%$%s%?%W%j%?$,<B9TCf$G$"$k$3$H$r<($9(B. |
$B%$%s%?%W%j%?$,<B9TCf$G$"$k$3$H$r<($9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item nextbplevel |
@item nextbplevel |
|
|
|
\BJP |
$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 |
$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 |
1 $B8:$k(B. |
1 $B8:$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@end table |
@end table |
|
|
$B$^$?(B @code{evalstat()} $B$N@hF,$G$O<!$N$h$&$J%3!<%I$,<B9T$5$l$F$$$k(B. |
\JP $B$^$?(B @code{evalstat()} $B$N@hF,$G$O<!$N$h$&$J%3!<%I$,<B9T$5$l$F$$$k(B. |
|
\EG |
|
|
@example |
@example |
/* $B%9%F%C%W<B9TCf$G(B nextbplevel $B$,Hs@5(B */ |
\JP /* $B%9%F%C%W<B9TCf$G(B nextbplevel $B$,Hs@5(B */ |
|
\EG /* */ |
if ( nextbp && nextbplevel <= 0 && f->id != S_CPLX ) @{ |
if ( nextbp && nextbplevel <= 0 && f->id != S_CPLX ) @{ |
nextbp = 0; |
nextbp = 0; |
/* $B%G%P%C%0%b!<%I$KF~$k(B */ |
\JP /* $B%G%P%C%0%b!<%I$KF~$k(B */ |
|
\EG /* */ |
bp(f); |
bp(f); |
@} |
@} |
@end example |
@end example |
|
|
$B$3$l$i$K$h$j%9%F%C%W<B9T$O<!$N$h$&$K<B8=$5$l$k(B. |
\JP $B$3$l$i$K$h$j%9%F%C%W<B9T$O<!$N$h$&$K<B8=$5$l$k(B. |
|
\EG |
|
|
@table @code |
@table @code |
@item next |
@item next |
|
\BJP |
@code{nextbp = 1}, @code{nextbplevel = 0} $B$H$7$F<B9T$r7QB3$9$k(B. |
@code{nextbp = 1}, @code{nextbplevel = 0} $B$H$7$F<B9T$r7QB3$9$k(B. |
$BJ8$N<B9TCf$K4X?t$KF~$k$H(B, @code{nextbplevel} $B$,@5$H$J$k$N$G(B, $BJ8Cf(B |
$BJ8$N<B9TCf$K4X?t$KF~$k$H(B, @code{nextbplevel} $B$,@5$H$J$k$N$G(B, $BJ8Cf(B |
$B$N4X?t<B9TCf$O%G%P%C%0%b!<%I$KF~$i$J$$(B. $BJ8$N<B9T$,=*$C$F<!$N(B |
$B$N4X?t<B9TCf$O%G%P%C%0%b!<%I$KF~$i$J$$(B. $BJ8$N<B9T$,=*$C$F<!$N(B |
$BJ8$N@hF,$KC#$7$?$H$-(B, @code{nextbp = 0}, @code{nextbplevel = 0} |
$BJ8$N@hF,$KC#$7$?$H$-(B, @code{nextbp = 0}, @code{nextbplevel = 0} |
$B$H$J$C$F$$$k$?$a%G%P%C%0%b!<%I$KF~$k(B. |
$B$H$J$C$F$$$k$?$a%G%P%C%0%b!<%I$KF~$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item step |
@item step |
|
\BJP |
@code{nextbp = 1}, @code{nextbplevel = -1} $B$H$7$F<B9T$r7QB3$9$k(B. |
@code{nextbp = 1}, @code{nextbplevel = -1} $B$H$7$F<B9T$r7QB3$9$k(B. |
$BJ8$N<B9TCf$K4X?t$KF~$C$F$b(B, @code{nextbplevel = 0} $B$J$N$G(B |
$BJ8$N<B9TCf$K4X?t$KF~$C$F$b(B, @code{nextbplevel = 0} $B$J$N$G(B |
$B%G%P%C%0%b!<%I$KF~$k(B. |
$B%G%P%C%0%b!<%I$KF~$k(B. |
|
\E |
|
\BEG |
|
\E |
@end table |
@end table |
|
|
@subsection $B%V%l!<%/%]%$%s%H$N@_Dj(B |
\JP @subsection $B%V%l!<%/%]%$%s%H$N@_Dj(B |
|
\EG @subsection Setting break points |
|
|
|
\BJP |
$B%V%l!<%/%]%$%s%H$N@_Dj$O(B, $BBP>]$H$J$kJ8$NA0$K(B, $B%V%l!<%/%]%$%s%HJ8(B |
$B%V%l!<%/%]%$%s%H$N@_Dj$O(B, $BBP>]$H$J$kJ8$NA0$K(B, $B%V%l!<%/%]%$%s%HJ8(B |
($BJ8<1JL;R(B @code{S_BP} $B$rA^F~$9$k$3$H$G9T$&(B. $B%V%l!<%/%]%$%s%HJ8$O(B |
($BJ8<1JL;R(B @code{S_BP} $B$rA^F~$9$k$3$H$G9T$&(B. $B%V%l!<%/%]%$%s%HJ8$O(B |
$B0z?t$H$7$FBP>]$H$J$kJ8(B, $B%V%l!<%/%]%$%s%H$KF~$k$?$a$N>r7o<0$r;}$D(B. |
$B0z?t$H$7$FBP>]$H$J$kJ8(B, $B%V%l!<%/%]%$%s%H$KF~$k$?$a$N>r7o<0$r;}$D(B. |
Line 304 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
Line 457 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
$B$,??(B (0 $B$G$J$$(B) $B>l9g$K(B @code{nextbp = 1}, @code{nextbplevel = 1} |
$B$,??(B (0 $B$G$J$$(B) $B>l9g$K(B @code{nextbp = 1}, @code{nextbplevel = 1} |
$B$H$7$F(B, $B0z?t$G$"$kJ8$r<B9T$9$k(B. $B4{$K=R$Y$?$3$H$h$j(B, |
$B$H$7$F(B, $B0z?t$G$"$kJ8$r<B9T$9$k(B. $B4{$K=R$Y$?$3$H$h$j(B, |
@code{evalstat()} $B$N@hF,$G%V%l!<%/%]%$%s%H$KF~$k$3$H$K$J$k(B. |
@code{evalstat()} $B$N@hF,$G%V%l!<%/%]%$%s%H$KF~$k$3$H$K$J$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $B%G%P%C%0%b!<%I$K$*$1$kJQ?t$N;2>H(B |
\JP @subsection $B%G%P%C%0%b!<%I$K$*$1$kJQ?t$N;2>H(B |
|
\EG @subsection Inspecting variables in the debug mode |
|
|
|
\BJP |
$B8=:_<B9TCf$N4X?t$O(B, $B$=$N4X?t9=B$BN$X$N%]%$%s%?(B ($B7?(B @code{FUNC}) $B$,(B |
$B8=:_<B9TCf$N4X?t$O(B, $B$=$N4X?t9=B$BN$X$N%]%$%s%?(B ($B7?(B @code{FUNC}) $B$,(B |
@code{tagetf} $B$J$kJQ?t$KEPO?$5$l$F$$$k(B. $B8=:_<B9TCf$N4X?t$,%f!<%64X?t$N>l(B |
@code{tagetf} $B$J$kJQ?t$KEPO?$5$l$F$$$k(B. $B8=:_<B9TCf$N4X?t$,%f!<%64X?t$N>l(B |
$B9g(B, $BBP1~$9$k%W%m%0%i%`JQ?t%9%?%C%/$O(B @code{CPVS} $B$KEPO?$5$l$F$$$k(B. |
$B9g(B, $BBP1~$9$k%W%m%0%i%`JQ?t%9%?%C%/$O(B @code{CPVS} $B$KEPO?$5$l$F$$$k(B. |
Line 317 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
Line 475 pointer evalf(FUNC f, FNODE a, FNODE opt) |
|
|
|
$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 |
$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 |
$BJQ?t$NCM$J$I$K%"%/%;%9$9$k$3$H$,$G$-$k(B. |
$BJQ?t$NCM$J$I$K%"%/%;%9$9$k$3$H$,$G$-$k(B. |
|
\E |
|
\BEG |
|
\E |