version 1.1, 2001/04/23 05:45:35 |
version 1.3, 2005/04/07 10:59:50 |
|
|
@comment $OpenXM$ |
@comment $OpenXM: OpenXM/src/asir-doc/int-parts/parser.texi,v 1.2 2003/04/19 10:36:29 noro Exp $ |
@chapter Paser |
@chapter Parser |
|
|
@section Parser $B$N9=@.(B |
\JP @section Parser $B$N9=@.(B |
|
\EG @section Configuration of the parser |
|
|
parser $B$O(B Asir $B8@8l$G=q$+$l$?J8;zNs$rCf4V8@8l$KJQ49$9$k(B. paser $B$O(B |
\BJP |
|
parser $B$O(B Asir $B8@8l$G=q$+$l$?J8;zNs$rCf4V8@8l$KJQ49$9$k(B. parser $B$O(B |
$B<!$N$b$N$+$i9=@.$5$l$k(B. |
$B<!$N$b$N$+$i9=@.$5$l$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
|
\BJP |
@itemize |
@itemize |
@item $BJ8K!Dj5A(B |
@item $BJ8K!Dj5A(B |
|
|
Line 27 keyword (@samp{if}, @samp{for} $B$J$I(B) $B$NB>$K( |
|
Line 33 keyword (@samp{if}, @samp{for} $B$J$I(B) $B$NB>$K( |
|
$B@8@.$5$l$kL>A0$,$"$k(B. $B$3$l$i$OB0@-Kh$K%j%9%H(B, $BG[Ns$J$I$N7A$G4IM}$5$l(B, |
$B@8@.$5$l$kL>A0$,$"$k(B. $B$3$l$i$OB0@-Kh$K%j%9%H(B, $BG[Ns$J$I$N7A$G4IM}$5$l(B, |
parser $B$N<B9TCf$K;2>H(B, $BDI2C$J$I$,9T$o$l$k(B. |
parser $B$N<B9TCf$K;2>H(B, $BDI2C$J$I$,9T$o$l$k(B. |
@end itemize |
@end itemize |
|
\E |
|
|
@section $BCf4V8@8l(B |
\BEG |
|
@itemize |
|
@item |
|
|
|
@item |
|
|
|
@item |
|
|
|
@end itemize |
|
\E |
|
|
|
\JP @section $BCf4V8@8l(B |
|
\EG @section Intermediate language |
|
|
|
\BJP |
@example |
@example |
typedef struct oFNODE @{ $B<0$rI=$9%N!<%I(B |
typedef struct oFNODE @{ $B<0$rI=$9%N!<%I(B |
fid id; $B<1JL;R(B |
fid id; $B<1JL;R(B |
Line 42 typedef struct oSNODE @{ $BJ8$rI=$9%N!<%I(B |
|
Line 62 typedef struct oSNODE @{ $BJ8$rI=$9%N!<%I(B |
|
pointer arg[1]; $B0z?tG[Ns(B ($BD9$52DJQ(B) |
pointer arg[1]; $B0z?tG[Ns(B ($BD9$52DJQ(B) |
@} oSNODE *SNODE; |
@} oSNODE *SNODE; |
@end example |
@end example |
|
\E |
|
\BEG |
|
@example |
|
typedef struct oFNODE @{ |
|
fid id; |
|
pointer arg[1]; |
|
@} oFNODE *FNODE; |
|
|
|
typedef struct oSNODE @{ |
|
sid id; |
|
int ln; |
|
pointer arg[1]; |
|
@} oSNODE *SNODE; |
|
@end example |
|
\E |
|
|
|
\BJP |
interpreter $B$NF~NO$H$J$kCf4V8@8l$N9=@.$O6K$a$FC1=c$G$"$k(B. |
interpreter $B$NF~NO$H$J$kCf4V8@8l$N9=@.$O6K$a$FC1=c$G$"$k(B. |
$BCf4V8@8l$N9=@.MWAG$O(B @b{$BJ8(B} $B$*$h$S(B @b{$B<0(B} $B$G$"$k(B. |
$BCf4V8@8l$N9=@.MWAG$O(B @b{$BJ8(B} $B$*$h$S(B @b{$B<0(B} $B$G$"$k(B. |
Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F(B parse $B$5$l(B, |
Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F(B parse $B$5$l(B, |
Line 51 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
Line 87 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
$B0UL#(B($BLr3d(B)$B$,7h$^$k(B. $B0J2<$G(B @code{S_} $B$G;O$^$k$N$O<1JL;R$NL>A0$G(B, |
$B0UL#(B($BLr3d(B)$B$,7h$^$k(B. $B0J2<$G(B @code{S_} $B$G;O$^$k$N$O<1JL;R$NL>A0$G(B, |
$B<B:]$K$OAj0[$J$k@0?t$,3d$jEv$F$i$l$F$$$k(B. |
$B<B:]$K$OAj0[$J$k@0?t$,3d$jEv$F$i$l$F$$$k(B. |
@samp{|} $B$O(B, $B<1JL;R$*$h$S0z?t$N;E@Z$j$r<($9(B. |
@samp{|} $B$O(B, $B<1JL;R$*$h$S0z?t$N;E@Z$j$r<($9(B. |
|
\E |
|
|
@table @code |
@table @code |
@item S_SINGLE | $B<0(B |
@item S_SINGLE | expr |
|
|
@samp{$B<0(B}$B$r<B9T$9$k(B. |
\JP @samp{expr}$B$r<B9T$9$k(B. |
|
\EG |
|
|
@item S_BREAK |
@item S_BREAK |
|
|
$B:G$bFbB&$N%k!<%W(B (@code{S_FOR}, @code{S_DO}) $B$rH4$1$k(B. |
\JP $B:G$bFbB&$N%k!<%W(B (@code{S_FOR}, @code{S_DO}) $B$rH4$1$k(B. |
|
\EG |
|
|
@item S_CONTINUE |
@item S_CONTINUE |
|
|
$B:G$bFbB&$N%k!<%W$N@hF,$KHt$V(B. |
\JP $B:G$bFbB&$N%k!<%W$N@hF,$KHt$V(B. |
|
\EG |
|
|
@item S_RETURN | $B<0(B |
@item S_RETURN | expr |
|
|
$B4X?t$+$iH4$1$F(B, @samp{$B<0(B} $B$NCM$rJV$9(B. |
\JP $B4X?t$+$iH4$1$F(B, @samp{expr} $B$NCM$rJV$9(B. |
|
\EG |
|
|
@item S_IFELSE | $B%@%_!<(B | $B>r7o<0(B | $BJ8(B1 | $BJ8(B2 |
@item S_IFELSE | dummy | expr | stat1 | stat2 |
|
|
@samp{$B>r7o<0(B} $B$NCM$,(B 0 $B$G$J$$$J$i(B @samp{$BJ8(B1} $B$r<B9T(B, 0 $B$J$i(B @samp{$BJ8(B2} $B$r(B |
\JP@samp{expr} $B$NCM$,(B 0 $B$G$J$$$J$i(B @samp{stat 1} $B$r<B9T(B, 0 $B$J$i(B @samp{stat 2} $B$r(B |
$B<B9T(B. |
$B<B9T(B. |
|
\EG |
|
|
@item S_FOR | $B%@%_!<(B | $B<0(B1 | $B>r7o<0(B | $BJ8(B | $B<0(B2 |
@item S_FOR | dummy | expr1 | expr | stat | expr2 |
|
|
$B$^$:(B @samp{$B<0(B1} $B$r<B9T$7$?$"$H(B, @samp{$B>r7o<0(B} $B$NCM$,(B 0 $B$G$J$$4V(B, @samp{$BJ8(B} |
\BJP |
$B$H(B @samp{$B<0(B2} $B$N7W;;$r7+$jJV$9(B. |
$B$^$:(B @samp{expr1} $B$r<B9T$7$?$"$H(B, @samp{expr} $B$NCM$,(B 0 $B$G$J$$4V(B, @samp{stat} |
|
$B$H(B @samp{expr2} $B$N7W;;$r7+$jJV$9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item S_DO | $B%@%_!<(B | $BJ8(B | $B>r7o<0(B |
@item S_DO | dummy | stat | expr |
|
|
@samp{$BJ8(B} $B$r<B9T$7$?$"$H(B @samp{$B>r7o<0(B} $B$r7W;;$7(B, $B$=$NCM$,(B 0 $B$G$J$$4V(B |
\JP @samp{stat} $B$r<B9T$7$?$"$H(B @samp{expr} $B$r7W;;$7(B, $B$=$NCM$,(B 0 $B$G$J$$4V7+$jJV$9(B. |
$B7+$jJV$9(B. |
\EG |
|
|
@end table |
@end table |
|
|
|
\BJP |
@code{SNODE} $B$O9THV9f$r<($9%a%s%P(B @code{ln} $B$r;}$D(B. $B3F9T$,%U%!%$%k$+$iFI$^$l$?(B |
@code{SNODE} $B$O9THV9f$r<($9%a%s%P(B @code{ln} $B$r;}$D(B. $B3F9T$,%U%!%$%k$+$iFI$^$l$?(B |
$B>l9g$K(B, $B$=$N%U%!%$%k$K$*$1$k9THV9f$r3JG<$7$F$*$/(B. $B$3$l$O%G%P%C%0;~$K9THV9f(B |
$B>l9g$K(B, $B$=$N%U%!%$%k$K$*$1$k9THV9f$r3JG<$7$F$*$/(B. $B$3$l$O%G%P%C%0;~$K9THV9f(B |
$B$+$iJ8$rFCDj$9$k$?$a$J$I$KMQ$$$i$l$k(B. |
$B$+$iJ8$rFCDj$9$k$?$a$J$I$KMQ$$$i$l$k(B. |
Line 95 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
Line 143 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
$B$K1~$8$FD9$5(B, $B$*$h$S$=$N3FMWAG$N0UL#(B($BLr3d(B)$B$,7h$^$k(B. $B0J2<$G(B @code{I_} $B$G(B |
$B$K1~$8$FD9$5(B, $B$*$h$S$=$N3FMWAG$N0UL#(B($BLr3d(B)$B$,7h$^$k(B. $B0J2<$G(B @code{I_} $B$G(B |
$B;O$^$k$N$O<1JL;R$NL>A0$G(B, $B<B:]$K$OAj0[$J$k@0?t$,3d$jEv$F$i$l$F$$(B |
$B;O$^$k$N$O<1JL;R$NL>A0$G(B, $B<B:]$K$OAj0[$J$k@0?t$,3d$jEv$F$i$l$F$$(B |
$B$k(B. @samp{|} $B$O(B, $B<1JL;R$*$h$S0z?t$N;E@Z$j$r<($9(B. |
$B$k(B. @samp{|} $B$O(B, $B<1JL;R$*$h$S0z?t$N;E@Z$j$r<($9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@table @code |
@table @code |
@item I_STR | $BJ8;zNs(B |
@item I_STR | string |
|
|
$BJ8;zNs(B |
\JP $BJ8;zNs(B |
|
\EG |
|
|
@item I_FORMULA | Risa object |
@item I_FORMULA | object |
|
|
$B4{$K(B Risa object $B$KJQ49$5$l$F$$$k<0(B |
\JP $B4{$K(B Risa object $B$KJQ49$5$l$F$$$k(B \code{object} |
|
\EG |
|
|
@item I_ANS | $B%$%s%G%C%/%9(B |
@item I_ANS | index |
|
|
@samp{$B%$%s%G%C%/%9(B} $BHVL\$N7W;;7k2L(B |
\JP @samp{index} $BHVL\$N7W;;7k2L(B |
|
\EG |
|
|
@item I_GF2NGEN |
@item I_GF2NGEN |
|
|
$BI8?t(B 2 $BM-8BBN$N@8@.85(B |
\JP $BI8?t(B 2 $BM-8BBN$N@8@.85(B |
|
\EG |
|
|
@item I_EV | $B%$%s%G%C%/%9%N!<%I(B |
@item I_EV | node |
|
|
@samp{$B%$%s%G%C%/%9%N!<%I(B} $B$r;X?t%Y%/%H%k$H$_$F(B, $B78?t(B 1 $B$NC19`<0$r@8@.$9$k(B. |
\JP @samp{node} $B$r;X?t%Y%/%H%k$H$_$F(B, $B78?t(B 1 $B$NC19`<0$r@8@.$9$k(B. |
|
\EG |
|
|
@item I_FUNC | $B4X?t(B | $B0z?t%j%9%H(B |
@item I_FUNC | function | argument list |
|
|
$B4X?t8F$S=P$7(B |
\JP $B4X?t8F$S=P$7(B |
|
\EG |
|
|
@item I_CAR | $B%j%9%H(B |
@item I_CAR | list |
|
|
$B%j%9%H$N@hF,MWAG(B |
\JP @code{list} $B$N@hF,MWAG(B |
|
\EG |
|
|
@item I_CDR | $B%j%9%H(B |
@item I_CDR | list |
|
|
$B%j%9%H$+$i@hF,MWAG$r=|$$$?%j%9%H(B |
\JP @code{list} $B$+$i@hF,MWAG$r=|$$$?%j%9%H(B |
|
\EG |
|
|
@item I_PVAR | $B%$%s%G%C%/%9(B |
@item I_PVAR | index |
|
|
@code{$B%$%s%G%C%/%9(B} $BHVL\$N%W%m%0%i%`JQ?t$NCM(B |
\JP @code{index} $BHVL\$N%W%m%0%i%`JQ?t$NCM(B |
|
\EG |
|
|
@item I_ASSPVAR | $B<0(B1 | $B<0(B2 |
@item I_ASSPVAR | expr1 | expr2 |
|
|
@samp{$B<0(B1} $B$G<($5$l$k%W%m%0%i%`JQ?t$K(B @samp{$B<0(B2} $B$rBeF~(B |
\JP @samp{expr1} $B$G<($5$l$k%W%m%0%i%`JQ?t$K(B @samp{expr2} $B$rBeF~(B |
|
\EG |
|
|
@item I_INDEX | $B<0(B | $B%$%s%G%C%/%9%N!<%I(B |
@item I_INDEX | expr | index |
|
|
@samp{$B<0(B} $B$rG[Ns$^$?$O%j%9%H$H8+$F(B, @samp{$B%$%s%G%C%/%9(B}$B$G;XDj$5$l$kMWAG$r<h$j=P$9(B. |
\JP @samp{expr} $B$rG[Ns$^$?$O%j%9%H$H8+$F(B, @samp{index}$B$G;XDj$5$l$kMWAG$r<h$j=P$9(B. |
|
\EG |
|
|
@item I_POSTSELF | $B4X?t(B | $B<0(B |
@item I_POSTSELF | function | expr |
|
|
@samp{$B<0(B} $B$NCM$r<h$j=P$7$?$"$H(B, @samp{$B4X?t(B} $B$,2C;;$J$i(B @samp{$B<0(B} $B$r(B 1 $BA}$d$7(B, |
\BJP |
@samp{$B4X?t(B} $B$,8:;;$J$i(B @samp{$B<0(B} $B$r(B 1 $B8:$i$9(B. |
@samp{expr} $B$NCM$r<h$j=P$7$?$"$H(B, @samp{function} $B$,2C;;$J$i(B @samp{expr} $B$r(B 1 $BA}$d$7(B, |
|
@samp{function} $B$,8:;;$J$i(B @samp{expr} $B$r(B 1 $B8:$i$9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item I_PRESELF | $B4X?t(B | $B<0(B |
@item I_PRESELF | function | expr |
|
|
@samp{$B4X?t(B} $B$,2C;;$J$i(B @samp{$B<0(B} $B$r(B 1 $BA}$d$7(B, @samp{$B4X?t(B} $B$,8:;;$J$i(B |
\BJP |
@samp{$B<0(B} $B$r(B 1 $B8:$i$9(B. $B$=$N8e(B @samp{$B<0(B} $B$NCM$r<h$j=P$9(B. |
@samp{function} $B$,2C;;$J$i(B @samp{expr} $B$r(B 1 $BA}$d$7(B, @samp{function} $B$,8:;;$J$i(B |
|
@samp{$B<0(B} $B$r(B 1 $B8:$i$9(B. $B$=$N8e(B @samp{expr} $B$NCM$r<h$j=P$9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item I_LIST | $B%N!<%I(B |
@item I_LIST | node |
|
|
@samp{$B%N!<%I(B}$B$+$i%j%9%H$r@8@.$9$k(B. |
\JP @samp{node}$B$+$i%j%9%H$r@8@.$9$k(B. |
|
\EG |
|
|
@item I_NOP | $B<0(B |
@item I_NOP | expr |
|
|
@samp{$B<0(B} $B$,(B 0 $B$G$J$$$J$i(B 0, 0 $B$J$i(B 1. |
\JP @samp{expr} $B$,(B 0 $B$G$J$$$J$i(B 0, 0 $B$J$i(B 1. |
|
\EG |
|
|
@item I_OR | $B<0(B1 | $B<0(B2 |
@item I_OR | expr1 | expr2 |
|
|
@samp{$B<0(B1}, @samp{$B<0(B2} $B$,$H$b$K(B 0 $B$J$i(B 0, $B$=$l0J30$O(B 1. |
\JP @samp{expr1}, @samp{expr2} $B$,$H$b$K(B 0 $B$J$i(B 0, $B$=$l0J30$O(B 1. |
|
\EG |
|
|
@item I_AND | $B<0(B1 | $B<0(B2 |
@item I_AND | expr1 | expr2 |
|
|
@samp{$B<0(B1}, @samp{$B<0(B2} $B$,$H$b$K(B 0 $B$G$J$$$J$i(B 1, $B$=$l0J30$O(B 0. |
\JP @samp{expr1}, @samp{expr2} $B$,$H$b$K(B 0 $B$G$J$$$J$i(B 1, $B$=$l0J30$O(B 0. |
|
\EG |
|
|
@item I_CE | $B>r7o<0(B | $B<0(B1 | $B<0(B2 |
@item I_CE | expr | expr1 | expr2 |
|
|
@samp{$B>r7o<0(B} $B$,(B 0 $B$G$J$$$H$-(B @samp{$B<0(B1} $B$NCM(B, 0 $B$N$H$-(B @samp{$B<0(B2} $B$NCM(B. |
\JP @samp{expr} $B$,(B 0 $B$G$J$$$H$-(B @samp{expr1} $B$NCM(B, 0 $B$N$H$-(B @samp{expr2} $B$NCM(B. |
|
\EG |
|
|
@item I_BOP | $B<1JL;R(B | $B<0(B1 | $B<0(B2 |
@item I_BOP | bop_id | expr1 | expr2 |
|
|
@samp{$B<1JL;R(B} $B$G;XDj$5$l$kFs9`1i;;;R(B ($B2C8:>h=|$J$I(B) $B$K=>$C$F(B, @samp{$B<0(B1}, |
\BJP |
@samp{$B<0(B2} $B$r0z?t$H$7$F1i;;(B. |
@samp{bop_id} $B$G;XDj$5$l$kFs9`1i;;;R(B ($B2C8:>h=|$J$I(B) $B$K=>$C$F(B, @samp{expr1}, |
|
@samp{expr2} $B$r0z?t$H$7$F1i;;(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@item I_COP | $B<1JL;R(B | $B<0(B1 | $B<0(B2 |
@item I_COP | cop_id | expr1 | expr2 |
|
|
@samp{$B<1JL;R(B} $B$G;XDj$5$l$kHf3S1i;;;R$K=>$C$F(B, @samp{$B<0(B1}, |
\BJP |
@samp{$B<0(B2} $B$rHf3S(B. $B7k2L$O(B 0, 1, -1. |
@samp{cop_id} $B$G;XDj$5$l$kHf3S1i;;;R$K=>$C$F(B, @samp{expr1}, |
|
@samp{expr2} $B$rHf3S(B. $B7k2L$O(B 0, 1, -1. |
|
\E |
|
\BEG |
|
\E |
|
|
@item I_LOP | $B<1JL;R(B | $B<0(B1 | $B<0(B2 |
@item I_LOP | lop_id | expr1 | expr2 |
|
|
@samp{$B<1JL;R(B} $B$G;XDj$5$l$kO@M}1i;;;R$K$h$j(B, @samp{$B<0(B1}, |
\BJP |
@samp{$B<0(B2} $B$r0z?t$H$7$FO@M}<0$r@8@.(B. |
@samp{lop_id} $B$G;XDj$5$l$kO@M}1i;;;R$K$h$j(B, @samp{expr1}, |
|
@samp{expr2} $B$r0z?t$H$7$FO@M}<0$r@8@.(B. |
|
\E |
|
\BEG |
|
\E |
@end table |
@end table |
|
|
@section $B;z6g2r@O(B |
\JP @section $B;z6g2r@O(B |
|
\EG @section Lexical analysis |
|
|
|
\BJP |
$B;z6g2r@OIt$G$O(B, $B6uGr(B, $B%?%V(B, $B2~9T$r%9%-%C%W$7$?$"$H$N:G=i$NJ8;z$K$h$C$F(B |
$B;z6g2r@OIt$G$O(B, $B6uGr(B, $B%?%V(B, $B2~9T$r%9%-%C%W$7$?$"$H$N:G=i$NJ8;z$K$h$C$F(B |
$B:G=i$NJ,N`$r9T$&(B. |
$B:G=i$NJ,N`$r9T$&(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item 0 |
@item 0 |
|
|
$BB3$/(B 0 $B$r%9%-%C%W$7$F(B, $B?t;z$,Mh$?$i(B 10 $B?J?t(B, b $B$,Mh$?$i(B 2 $B?J?t(B, x $B$,Mh$?$i(B |
$BB3$/(B 0 $B$r%9%-%C%W$7$F(B, $B?t;z$,Mh$?$i(B 10 $B?J?t(B, b $B$,Mh$?$i(B 2 $B?J?t(B, x $B$,Mh$?$i(B |
Line 260 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
Line 353 Asir $B8@8l$K$h$kF~NOJ8;zNs$O(B, $BJ8$NJB$S$H$7$F( |
|
$B5-9f$K1~$8$F$5$^$6$^$K07$o$l$k(B. $BB?$/$O1i;;;R$H$7$F07$o$l$k$,(B, |
$B5-9f$K1~$8$F$5$^$6$^$K07$o$l$k(B. $BB?$/$O1i;;;R$H$7$F07$o$l$k$,(B, |
@samp{@{}, @samp{@}}, @samp{[}, @samp{]}, @samp{(}, @samp{)} |
@samp{@{}, @samp{@}}, @samp{[}, @samp{]}, @samp{(}, @samp{)} |
$B$J$I(B, $B0lBP$G4V$K$"$kBP>]$K:nMQ$9$k$b$N$b$"$k(B. |
$B$J$I(B, $B0lBP$G4V$K$"$kBP>]$K:nMQ$9$k$b$N$b$"$k(B. |
|
\E |
|
\BEG |
|
@item 0 |
|
|
|
$BB3$/(B 0 $B$r%9%-%C%W$7$F(B, $B?t;z$,Mh$?$i(B 10 $B?J?t(B, b $B$,Mh$?$i(B 2 $B?J?t(B, x $B$,Mh$?$i(B |
|
16 $B?J?t$H$7$F(B, $B$"$H$KB3$/(B valid $B$JJ8;z$r%P%C%U%!$KFI$_9~$_(B, 2^32 $B?J?t$K(B |
|
$BJQ49$9$k(B. |
|
|
|
@item 0 $B0J30$N?t;z(B |
|
|
|
$B0J2<$KB3$/?t;z$r%P%C%U%!$KFI$_9~$_(B, 10 $B?J?t$H$7$F(B 2^32 $B?J?t$KJQ49$9$k(B. |
|
|
|
@item $B1Q>.J8;z(B |
|
|
|
$B0J2<$KB3$/(B, $B%"%k%U%!%Y%C%H(B, $B?t;z(B, @samp{_} $B$r%P%C%U%!$KFI$_9~$_(B, keyword |
|
$B$N>l9g$K$O$=$N<1JL;R(B, $B$=$&$G$J$$>l9g$K$O(B @samp{$B>.J8;z$G;O$^$kJ8;zNs(B} $B$r0UL#(B |
|
$B$9$k<1JL;R$rJV$9(B. |
|
|
|
@item $B1QBgJ8;z(B |
|
|
|
$B0J2<$KB3$/(B, $B%"%k%U%!%Y%C%H(B, $B?t;z(B, @samp{_} $B$r%P%C%U%!$KFI$_9~$_(B, |
|
@samp{$BBgJ8;z$G;O$^$kJ8;zNs(B} $B$r0UL#$9$k<1JL;R$rJV$9(B. |
|
|
|
@item @code{@@} |
|
|
|
@code{@@} $B$O$=$N8e$KMh$kJ8;zNs$K$h$j$5$^$6$^$JBP>]$rI=$9(B. |
|
|
|
@itemize @code{-} |
|
@item @code{@@@@} |
|
|
|
$BD>A0$N7W;;7k2L(B |
|
|
|
@item @code{@@pi} |
|
|
|
$B1_<~N($rI=$9ITDj85(B |
|
@item @code{@@e} |
|
|
|
$B<+A3BP?t$NDl$rI=$9ITDj85(B |
|
|
|
@item @code{@@i} |
|
|
|
$B5u?tC10L(B |
|
|
|
@item @code{@@p} |
|
|
|
$B4qI8?tM-8BBN$N3HBgBN$N@8@.85(B |
|
|
|
@item @code{@@true}, @code{@@false}, @code{@@impl}, @code{@@repl}, @code{@@equiv} |
|
|
|
$BO@M}1i;;;R(B |
@end itemize |
@end itemize |
|
|
@section $BL>A04IM}(B |
$B$3$l0J30$N>l9g(B @code{@@} $B$OI8?t(B 2 $B$NM-8BBN$N@8@.85$rI=$9(B. |
|
|
|
@item @samp{"} |
|
|
|
$B<!$N(B @samp{"} $B$ND>A0$NJ8;z$^$G$rJ8;zNs(B Risa object $B$H$_$J$9(B. |
|
|
|
@item @samp{'} |
|
|
|
$B<!$N(B @samp{'} $B$ND>A0$NJ8;z$^$G$r(B @samp{$B>.J8;z$G;O$^$kJ8;zNs(B} $B$H$_$J$9(B. |
|
$B$3$l$O(B, $BG$0UJ8;zNs$rL>A0$H$9$kITDj85$r@8@.$9$kI,MW$,$"$k>l9g$J$I$K(B |
|
$BMQ$$$k(B. |
|
|
|
@item $B$=$NB>$N5-9f(B |
|
|
|
$B5-9f$K1~$8$F$5$^$6$^$K07$o$l$k(B. $BB?$/$O1i;;;R$H$7$F07$o$l$k$,(B, |
|
@samp{@{}, @samp{@}}, @samp{[}, @samp{]}, @samp{(}, @samp{)} |
|
$B$J$I(B, $B0lBP$G4V$K$"$kBP>]$K:nMQ$9$k$b$N$b$"$k(B. |
|
\E |
|
@end itemize |
|
|
|
\JP @section $BL>A04IM}(B |
|
\EG @section Names |
|
|
|
\BJP |
Asir $B$K$*$$$F$O(B, $BITDj85(B, $B4X?t(B, $B%W%m%0%i%`JQ?t$H$$$&(B 3 $B$D$N%+%F%4%jJL$K(B |
Asir $B$K$*$$$F$O(B, $BITDj85(B, $B4X?t(B, $B%W%m%0%i%`JQ?t$H$$$&(B 3 $B$D$N%+%F%4%jJL$K(B |
$BL>A0$,4IM}$5$l$F$$$k(B. |
$BL>A0$,4IM}$5$l$F$$$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $BITDj85(B |
\JP @subsection $BITDj85(B |
|
\EG @subsection Indeterminates |
|
|
|
\BJP |
$BITDj85$OJQ?t%j%9%H(B @code{CO} (Current variable Order) $B$G4IM}$5$l$k(B. $BITDj(B |
$BITDj85$OJQ?t%j%9%H(B @code{CO} (Current variable Order) $B$G4IM}$5$l$k(B. $BITDj(B |
$B85$HG'<1$5$l$kJ8;zNs$,;z6g2r@OIt$+$iM?$($i$l$?>l9g(B, @code{CO} $B$KEPO?$5$l(B |
$B85$HG'<1$5$l$kJ8;zNs$,;z6g2r@OIt$+$iM?$($i$l$?>l9g(B, @code{CO} $B$KEPO?$5$l(B |
$B$F$$$kITDj85$NL>A0$H$=$NJ8;zNs$r=g$KHf3S$7(B, $B0lCW$7$?>l9g$K$O$=$NITDj859=(B |
$B$F$$$kITDj85$NL>A0$H$=$NJ8;zNs$r=g$KHf3S$7(B, $B0lCW$7$?>l9g$K$O$=$NITDj859=(B |
$BB$BN%]%$%s%?$rBP1~$9$kJQ?t$H$7$FMQ$$$k(B. $B0lCW$9$kL>A0$,$J$$>l9g$K$O?7$?$K(B |
$BB$BN%]%$%s%?$rBP1~$9$kJQ?t$H$7$FMQ$$$k(B. $B0lCW$9$kL>A0$,$J$$>l9g$K$O?7$?$K(B |
$BITDj859=B$BN$r@8@.$7(B, $BM?$($i$l$?J8;zNs$rL>A0$H$7$FEPO?$7(B, @code{CO} $B$N(B |
$BITDj859=B$BN$r@8@.$7(B, $BM?$($i$l$?J8;zNs$rL>A0$H$7$FEPO?$7(B, @code{CO} $B$N(B |
$BKvHx$KDI2C$9$k(B. |
$BKvHx$KDI2C$9$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $B4X?t(B |
\JP @subsection $B4X?t(B |
|
\EG @subsection Functions |
|
|
@example |
@example |
|
\BJP |
typedef struct oFUNC @{ Asir $B4X?t(B |
typedef struct oFUNC @{ Asir $B4X?t(B |
char *name; $B4X?tL>(B |
char *name; $B4X?tL>(B |
int argc; $B0z?t$N8D?t(B |
int argc; $B0z?t$N8D?t(B |
Line 323 extern NODE sysf,noargsysf; $BAH$_9~$_4X?t%j%9%H(B |
|
Line 498 extern NODE sysf,noargsysf; $BAH$_9~$_4X?t%j%9%H(B |
|
extern NODE usrf; $B%f!<%6Dj5A4X?t%j%9%H(B |
extern NODE usrf; $B%f!<%6Dj5A4X?t%j%9%H(B |
extern NODE parif; PARI $B4X?t%j%9%H(B |
extern NODE parif; PARI $B4X?t%j%9%H(B |
extern NODE pflist; $B=c4X?t%j%9%H(B |
extern NODE pflist; $B=c4X?t%j%9%H(B |
|
\E |
|
\BEG |
|
typedef struct oFUNC @{ Asir $B4X?t(B |
|
char *name; $B4X?tL>(B |
|
int argc; $B0z?t$N8D?t(B |
|
int type; PARI $B4X?t7?(B |
|
aid id; $B7?(B ($BL$Dj5A(B, $BAH$_9~$_(B, $B%f!<%6(B, $B=c(B, PARI) |
|
union @{ |
|
void (*binf)(); $BAH$_9~$_4X?t(B |
|
struct oUSRF *usrf; $B%f!<%6Dj5A4X?t9=B$BN(B |
|
struct oPF *puref; $B=c4X?t(B |
|
@} f; |
|
@} *FUNC; |
|
|
|
typedef struct oUSRF @{ $B%f!<%6Dj5A4X?t(B |
|
char *fname; $B4X?tL>(B |
|
short vol; $BL$;HMQ(B |
|
int startl,endl; $B%U%!%$%kFb$G$N3+;O(B, $B=*N;0LCV(B |
|
NODE args; $B2>0z?t%j%9%H(B |
|
VS pvs; $B6I=j%W%m%0%i%`JQ?tG[Ns(B |
|
char *desc; $B4X?t$N@bL@(B |
|
struct oSNODE *body; $BJ8%j%9%H(B($B4X?tK\BN(B) |
|
@} *USRF; |
|
|
|
typedef struct oPF @{ $B=c4X?t(B |
|
char *name; $B4X?tL>(B |
|
int argc; $B0z?t$N8D?t(B |
|
Obj body; $B%f!<%6Dj5A=c4X?t$NK\BN(B |
|
V *args; $B0z?tG[Ns(B |
|
Obj *deriv; $BJPF34X?tG[Ns(B |
|
NODE ins; $B4X?t%$%s%9%?%s%9%j%9%H(B |
|
int (*pari)(); PARI $B8F$S=P$74X?t(B |
|
double (*libm)(); C $B?t3X4X?t(B |
|
int (*simplify)(); simplifier |
|
@} *PF; |
|
|
|
struct oV @{ $BITDj85(B($B:F7G(B) |
|
char *name; |
|
pointer attr; $BB0@-(B |
|
pointer priv; |
|
@}; |
|
|
|
extern NODE sysf,noargsysf; $BAH$_9~$_4X?t%j%9%H(B |
|
extern NODE usrf; $B%f!<%6Dj5A4X?t%j%9%H(B |
|
extern NODE parif; PARI $B4X?t%j%9%H(B |
|
extern NODE pflist; $B=c4X?t%j%9%H(B |
|
\E |
@end example |
@end example |
|
|
|
\BJP |
$B4X?t$K$O(B, $BAH$_9~$_4X?t(B, $B%f!<%6Dj5A4X?t(B, PARI $B4X?t$*$h$S=c4X?t$,$"$k(B. $B$$(B |
$B4X?t$K$O(B, $BAH$_9~$_4X?t(B, $B%f!<%6Dj5A4X?t(B, PARI $B4X?t$*$h$S=c4X?t$,$"$k(B. $B$$(B |
$B$:$l$b(B $B4X?t9=B$BN(B @code{FUNC} $B$H$7$FEPO?$5$l%j%9%H$H$7$FJ];}$5$l$k(B. $BAH$_(B |
$B$:$l$b(B $B4X?t9=B$BN(B @code{FUNC} $B$H$7$FEPO?$5$l%j%9%H$H$7$FJ];}$5$l$k(B. $BAH$_(B |
$B9~$_4X?t$N$&$A(B, $B0z?t$r;}$D$b$N$O(B, @code{sysf} $B$K(B, $B;}$?$J$$$b$N$O(B |
$B9~$_4X?t$N$&$A(B, $B0z?t$r;}$D$b$N$O(B, @code{sysf} $B$K(B, $B;}$?$J$$$b$N$O(B |
Line 348 C $B$N(B @code{libm} $B%i%$%V%i%j$NF1Ey$N4X?t%]%$%s |
|
Line 571 C $B$N(B @code{libm} $B%i%$%V%i%j$NF1Ey$N4X?t%]%$%s |
|
$B$r7k2L$H$7$FJV$9(B, $BDL>o$N%W%m%0%i%_%s%08@8l$N0UL#$G$N4X?t$@$,(B, $B=c4X?t$O(B, |
$B$r7k2L$H$7$FJV$9(B, $BDL>o$N%W%m%0%i%_%s%08@8l$N0UL#$G$N4X?t$@$,(B, $B=c4X?t$O(B, |
$B0z?t$N$_$,I>2A$5$l$F(B, $B$=$N0z?t$r;}$D4X?t8F$S=P$7$=$N$b$N$rJV$9(B. |
$B0z?t$N$_$,I>2A$5$l$F(B, $B$=$N0z?t$r;}$D4X?t8F$S=P$7$=$N$b$N$rJV$9(B. |
Asir $B$N<B9TNc$r<($9(B. |
Asir $B$N<B9TNc$r<($9(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@example |
@example |
[0] A=sin(x); |
[0] A=sin(x); |
sin(x); |
sin(x); |
[1] type(A); |
[1] type(A); |
2 <--- $B=c4X?t$OB?9`<0(B |
\JP 2 <--- $B=c4X?t$OB?9`<0(B |
|
\EG 2 <--- |
[2] vtype(A); |
[2] vtype(A); |
2 <--- $BB0@-$O=c4X?t(B |
\JP 2 <--- $BB0@-$O=c4X?t(B |
|
\EG 2 <--- |
[3] args(A); |
[3] args(A); |
[x] <--- $B0z?t%j%9%H(B |
\JP [x] <--- $B0z?t%j%9%H(B |
|
\EG [x] <--- |
[4] B=functor(A); |
[4] B=functor(A); |
sin <--- $B4X?t;R(B |
\JP sin <--- $B4X?t;R(B |
|
\EG sin <--- |
[5] type(B); |
[5] type(B); |
2 <--- $B4X?t;R$bB?9`<0(B |
\JP 2 <--- $B4X?t;R$bB?9`<0(B |
|
\EG 2 <--- |
[4] vtype(B); |
[4] vtype(B); |
3 <--- $BB0@-$O4X?t;R(B |
\JP 3 <--- $BB0@-$O4X?t;R(B |
|
\EG 3 <--- |
@end example |
@end example |
|
|
|
\BJP |
$B$3$NNc$G$O(B, @code{sin(x)} $B$J$k=c4X?t$,@8@.$5$l$F$$$k$,(B, Risa object $B$H$7(B |
$B$3$NNc$G$O(B, @code{sin(x)} $B$J$k=c4X?t$,@8@.$5$l$F$$$k$,(B, Risa object $B$H$7(B |
$B$F$O(B, @code{sin(x)} $B<+?H$,ITDj85(B, $BB($AB?9`<0$H$J$k(B. $B$7$+$7(B @code{V} $B9=B$(B |
$B$F$O(B, @code{sin(x)} $B<+?H$,ITDj85(B, $BB($AB?9`<0$H$J$k(B. $B$7$+$7(B @code{V} $B9=B$(B |
$BBN$H$7$F$NB0@-(B ($B%a%s%P(B @code{attr}) $B$NCM$,0[$J$k(B. $B$3$NCM$,=c4X?t$r0UL#$9(B |
$BBN$H$7$F$NB0@-(B ($B%a%s%P(B @code{attr}) $B$NCM$,0[$J$k(B. $B$3$NCM$,=c4X?t$r0UL#$9(B |
Line 373 sin <--- $B4X?t;R(B |
|
Line 606 sin <--- $B4X?t;R(B |
|
$B$l(B, @code{args}, @code{functor} $B$K$h$j<hF@$5$l$k(B. $B4X?t;R<+?H$b(B, Risa |
$B$l(B, @code{args}, @code{functor} $B$K$h$j<hF@$5$l$k(B. $B4X?t;R<+?H$b(B, Risa |
object $B$H$7$F$OITDj85$H$7$FB8:_$9$k(B. $B$3$N>l9g$bB0@-$K$h$j4X?t;R$G$"$k(B |
object $B$H$7$F$OITDj85$H$7$FB8:_$9$k(B. $B$3$N>l9g$bB0@-$K$h$j4X?t;R$G$"$k(B |
$B$3$H$,<($5$l$k(B. |
$B$3$H$,<($5$l$k(B. |
|
\E |
|
\BEG |
|
\E |
|
|
@subsection $B%W%m%0%i%`JQ?t(B |
\JP @subsection $B%W%m%0%i%`JQ?t(B |
|
\EG @subsection Program variables |
|
|
@example |
@example |
|
\BJP |
typedef struct oVS @{ $B%W%m%0%i%`JQ?tG[Ns(B |
typedef struct oVS @{ $B%W%m%0%i%`JQ?tG[Ns(B |
unsigned int n; $B8=:_4^$^$l$kJQ?t$N8D?t(B |
unsigned int n; $B8=:_4^$^$l$kJQ?t$N8D?t(B |
unsigned int asize; $B3d$jEv$F$i$l$?G[Ns$ND9$5(B |
unsigned int asize; $B3d$jEv$F$i$l$?G[Ns$ND9$5(B |
Line 397 extern VS GPVS; $BBg0hJQ?tG[Ns(B |
|
Line 635 extern VS GPVS; $BBg0hJQ?tG[Ns(B |
|
extern VS CPVS; $B8=:_$NJQ?tG[Ns(B |
extern VS CPVS; $B8=:_$NJQ?tG[Ns(B |
extern VS EPVS; extern $B@k8@$5$l$?JQ?tG[Ns(B |
extern VS EPVS; extern $B@k8@$5$l$?JQ?tG[Ns(B |
extern VS APVS; $B7W;;7k2L$r3JG<$9$kG[Ns(B |
extern VS APVS; $B7W;;7k2L$r3JG<$9$kG[Ns(B |
|
\E |
|
\BEG |
|
typedef struct oVS @{ |
|
unsigned int n; |
|
unsigned int asize; |
|
unsigned int at; |
|
unsigned int level; |
|
struct oFUNC *usrf; |
|
struct oPV *va; |
|
NODE opt; |
|
@} *VS; |
|
|
|
typedef struct oPV @{ |
|
char *name; |
|
sort attr,type; |
|
pointer priv; |
|
@} *PV; |
|
|
|
extern VS GPVS; |
|
extern VS CPVS; |
|
extern VS EPVS; |
|
extern VS APVS; |
|
\E |
@end example |
@end example |
|
|
|
\BJP |
Asir $B$K$*$$$F$O(B, $B%W%m%0%i%`JQ?t$N%9%3!<%W$O(B, $BBg0hJQ?t$H(B, $B%W%m%0%i%`Fb$G(B |
Asir $B$K$*$$$F$O(B, $B%W%m%0%i%`JQ?t$N%9%3!<%W$O(B, $BBg0hJQ?t$H(B, $B%W%m%0%i%`Fb$G(B |
$B$N6I=jJQ?t$N(B 2 $B%l%Y%k$KC1=c2=$5$l$F$$$k(B. $BJQ?t$O(B, $B8=$l$?;~E@$G$$$:$l$+$N(B |
$B$N6I=jJQ?t$N(B 2 $B%l%Y%k$KC1=c2=$5$l$F$$$k(B. $BJQ?t$O(B, $B8=$l$?;~E@$G$$$:$l$+$N(B |
$B%W%m%0%i%`JQ?t$H$7$FEPO?$5$l$k(B. $B4X?t$N30$G8=$l$?%W%m%0%i%`JQ?t$O(B, $BBg0hJQ(B |
$B%W%m%0%i%`JQ?t$H$7$FEPO?$5$l$k(B. $B4X?t$N30$G8=$l$?%W%m%0%i%`JQ?t$O(B, $BBg0hJQ(B |
Line 413 Asir $B$K$*$$$F$O(B, $B%W%m%0%i%`JQ?t$N%9%3!<%W$O( |
|
Line 675 Asir $B$K$*$$$F$O(B, $B%W%m%0%i%`JQ?t$N%9%3!<%W$O( |
|
$B$l$k$,(B, extern $B@k8@$5$l$F$$$kJQ?t$K4X$7$F$O(B, $BF1L>$NBg0hJQ?tG[Ns$NJQ?t$K(B |
$B$l$k$,(B, extern $B@k8@$5$l$F$$$kJQ?t$K4X$7$F$O(B, $BF1L>$NBg0hJQ?tG[Ns$NJQ?t$K(B |
$BBP$9$k%$%s%G%C%/%9$,MQ$$$i$l$k(B. $B$3$N>l9g(B, $B<B:]$K$O$3$N6hJL$O%$%s%G%C%/%9(B |
$BBP$9$k%$%s%G%C%/%9$,MQ$$$i$l$k(B. $B$3$N>l9g(B, $B<B:]$K$O$3$N6hJL$O%$%s%G%C%/%9(B |
$B$N:G>e0L%S%C%H$r(B 1 $B$K$9$k$3$H$G9T$C$F$$$k(B. |
$B$N:G>e0L%S%C%H$r(B 1 $B$K$9$k$3$H$G9T$C$F$$$k(B. |
|
\E |
|
|
|
\BEG |
|
\E |
|
|