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

File: [local] / OpenXM / src / asir-doc / parts / builtin / string.texi (download)

Revision 1.6, Sat Apr 19 15:44:59 2003 UTC (21 years, 1 month 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, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.5: +3 -3 lines

Still updating the manula.

@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/string.texi,v 1.6 2003/04/19 15:44:59 noro Exp $
\BJP
@node $BJ8;zNs$K4X$9$k1i;;(B,,, $BAH$_9~$_H!?t(B
@section $BJ8;zNs$K4X$9$k1i;;(B
\E
\BEG
@node Strings,,, Built-in Function
@section Strings
\E

@menu
* rtostr::
* strtov::
* eval_str::
* strtoascii asciitostr::
* str_len str_chr sub_str::
@end menu

\JP @node rtostr,,, $BJ8;zNs$K4X$9$k1i;;(B
\EG @node rtostr,,, Strings
@subsection @code{rtostr}
@findex rtostr

@table @t
@item rtostr(@var{obj})
\JP :: @var{obj} $B$rJ8;zNs$KJQ$($k(B. 
\EG :: Convert @var{obj} into a string.
@end table

@table @var
@item return
\JP $BJ8;zNs(B
\EG string
@item obj
\JP $BG$0U(B
\EG arbitrary
@end table

@itemize @bullet
\BJP
@item
$BG$0U$N%*%V%8%'%/%H(B @var{obj} $B$rJ8;zNs$KJQ$($k(B. 
@item
$B@0?t$J$I$rJ8;zNs$KJQ49$7$FJQ?tL>$H7k9g$9$k$3$H$K$h$j(B, 
$BE:;zIU$-$NITDj85$r@8@.$9$k>l9g$KB?$/MQ$$$i$l$k(B. 
@item
$B5U$K(B, $BJ8;zNs$rITDj85$KJQ49$9$k;~$K$O(B, @code{strtov} $B$rMQ$$$k(B. 
\E
\BEG
@item
Convert an arbitrary object @var{obj} into a string.
@item
This function is convenient to create variables with numbered
(or indexed) names by converting integers into strings and appending them
to some name strings.
@item
Use @code{strtov()} for inverse conversion from string to indeterminate.
\E
@end itemize

@example
[0] A=afo;
afo
[1] type(A);
2
[2] B=rtostr(A); 
afo
[3] type(B);
7
[4] B+"1";
afo1
@end example

@table @t
\JP @item $B;2>H(B
\EG @item References
@fref{strtov}, @fref{type}.
@end table

\JP @node strtov,,, $BJ8;zNs$K4X$9$k1i;;(B
\EG @node strtov,,, Strings
@subsection @code{strtov}
@findex strtov

@table @t
@item strtov(@var{str})
\JP :: @var{str} ($BJ8;zNs(B) $B$rITDj85$KJQ$($k(B. 
\EG :: Convert a string @var{str} into an indeterminate.
@end table

@table @var
@item return
\JP $BITDj85(B
\EG intederminate
@item str
\JP $BITDj85$H$7$FJQ492DG=$JJ8;zNs(B
\EG string which is valid to constitute an indeterminate.
@end table

@itemize @bullet
\BJP
@item
$BITDj85$H$7$FJQ492DG=$JJ8;zNs$rITDj85$KJQ$($k(B. 
@item
$BITDj85$H$7$FJQ492DG=$JJ8;zNs$H$O(B, $B1Q>.J8;z$G;O$^$j(B, 
$B1Q;z(B, $B?t;z$*$h$S5-9f(B @code{_} $B$G:n$i$l$kJ8;zNs$G$"$k(B. 
@item
@code{rtostr()} $B$HAH9g$;$F(B, $B%W%m%0%i%`Cf$G<+F0E*$KITDj85$r@8@.$7$?$$;~$K(B
$BMQ$$$i$l$k(B. 
\E
\BEG
@item
Convert a string that is valid for an indeterminate into an indeterminate
which have @var{str} as its print name.
@item
The valid string for an indeterminate is such a string that begins
with a small alphabetical letter possibly followed by any string composed
of alphabetical letters, digits or a symbol @samp{_}.
@item
Use the command to create indeterminates dynamically in programs.
\E
@end itemize

@example
[0] A="afo";
afo
[1] for (I=0;I<3;I++) @{B=strtov(A+rtostr(I)); print([B,type(B)]);@}
[afo0,2]
[afo1,2]
[afo2,2]
@end example

@table @t
\JP @item $B;2>H(B
\EG @item References
@fref{rtostr}, @fref{type}, @fref{uc}.
@end table

\JP @node eval_str,,, $BJ8;zNs$K4X$9$k1i;;(B
\EG @node eval_str,,, Strings
@subsection @code{eval_str}
@findex eval_str

@table @t
@item eval_str(@var{str})
\JP :: @var{str} ($BJ8;zNs(B) $B$rI>2A$9$k(B. 
\EG :: Evaluates a string @var{str}.
@end table

@table @var
@item return
\JP $B%*%V%8%'%/%H(B
\EG object
@item str
\JP @b{Asir} $B$N(B parser $B$,<uM}2DG=$JJ8;zNs(B
\EG string which can be accepted by @b{Asir} parser
@end table

@itemize @bullet
\BJP
@item
@b{Asir} $B$N(B parser $B$,<uM}2DG=$JJ8;zNs$rI>2A$7$F$=$N7k2L$rJV$9(B. 
@item
$BI>2A2DG=$JJ8;zNs$O(B, $B<0$rI=$9$b$N$K8B$k(B. 
@item
$BO@M}E*$K$O(B @code{rtostr()} $B$N5U4X?t$H$J$k(B. 
\E
\BEG
@item
This function evaluates a string which can be accepted by @b{Asir} parser
and returns the result.
@item
The input string should represent an expression.
@item
This functions is the inversion function of @code{rtostr()}.
\E
@end itemize

@example
[0] eval_str("1+2");
3
[1] fctr(eval_str(rtostr((x+y)^10)));
[[1,1],[x+y,10]]
@end example

@table @t
\JP @item $B;2>H(B
\EG @item References
@fref{rtostr}
@end table

\JP @node strtoascii asciitostr,,, $BJ8;zNs$K4X$9$k1i;;(B
\EG @node strtoascii asciitostr,,, Strings
@subsection @code{strtoascii}, @code{asciitostr}
@findex strtoascii
@findex asciitostr

@table @t
@item strtoascii(@var{str})
\JP :: $BJ8;zNs$r%"%9%-!<%3!<%I$GI=$9(B. 
\EG :: Converts a string into a sequence of ASCII codes.
@item asciitostr(@var{list})
\JP :: $B%"%9%-!<%3!<%I$NNs$rJ8;zNs$KJQ49$9$k(B. 
\EG :: Converts a sequence of ASCII codes into a string.
@end table

@table @var
@item return
\JP @code{strtoascii()}:$B%j%9%H(B; @code{asciitostr()}:$BJ8;zNs(B
\EG @code{strtoascii()}:list; @code{asciitostr()}:string
@item str
\JP $BJ8;zNs(B
\EG string
@item list
\JP 1 $B0J>e(B 256 $BL$K~$N@0?t$+$i$J$k%j%9%H(B
\EG list containing positive integers less than 256.
@end table

@itemize @bullet
\BJP
@item
@code{strtoascii()} $B$OJ8;zNs$r@0?t$N%j%9%H$KJQ49$9$k(B. $B3F(B
$B@0?t$OJ8;zNs$N%"%9%-!<%3!<%I$rI=$9(B. 
@item
@code{asciitostr()} $B$O(B @code{asciitostr()} $B$N5U4X?t$G$"$k(B. 
\E
\BEG
@item
@code{strtoascii()} converts a string into a list of integers
which is a representation of the string by the ASCII code.
@item
@code{asciitostr()} is the inverse of @code{asciitostr()}.
\E
@end itemize

@example
[0] strtoascii("abcxyz");
[97,98,99,120,121,122]
[1] asciitostr(@@);
abcxyz
[2] asciitostr([256]);
asciitostr : argument out of range
return to toplevel
@end example

\JP @node str_len str_chr sub_str,,, $BJ8;zNs$K4X$9$k1i;;(B
\EG @node str_len str_chr sub_str,,, Strings
@subsection @code{str_len}, @code{str_chr}, @code{sub_str}
@findex str_len
@findex str_chr
@findex sub_str

@table @t
@item str_len(@var{str})
\JP :: $BJ8;zNs$ND9$5$rJV$9(B. 
\EG :: Returns the length of a string.
@item str_chr(@var{str},@var{start},@var{c})
\JP :: $BJ8;z$,:G=i$K8=$l$k0LCV$rJV$9(B. 
\EG :: Returns the position of the first occurrence of a character in a string.
@item sub_str(@var{str},@var{start},@var{end})
\JP :: $BItJ,J8;zNs$rJV$9(B. 
\EG :: Returns a substring of a string.
@end table

@table @var
@item return
\JP @code{str_len()}, @code{str_chr()}:$B@0?t(B; @code{sub_str()}:$BJ8;zNs(B
\EG @code{str_len()}, @code{str_chr()}:integer; @code{sub_str()}:string
@item str c
\JP $BJ8;zNs(B
\EG string
@item start end
\JP $BHsIi@0?t(B
\EG non-negative integer
@end table

@itemize @bullet
\BJP
@item @code{str_len()} $B$OJ8;zNs$ND9$5$rJV$9(B. 
@item @code{str_chr()} $B$O(B @var{str} $B$N(B @var{start} $BHVL\$NJ8;z$+$i%9%-%c%s$7$F(B
$B:G=i$K(B @var{c} $B$N:G=i$NJ8;z$,8=$l$?0LCV$rJV$9(B. $BJ8;zNs$N@hF,$O(B 0 $BHVL\$H$9$k(B. 
$B;XDj$5$l$?J8;z$,8=$l$J$$>l9g$K$O(B -1 $B$rJV$9(B.   
@item @code{sub_str()} $B$O(B, @var{str} $B$N(B @var{start} $BHVL\$+$i(B @var{end} $BHVL\(B
$B$^$G$NItJ,J8;zNs$r@8@.$7JV$9(B. 
\E
\BEG
@item @code{str_len()} returns the length of a string.
@item @code{str_chr()} scans a string @var{str} from the @var{start}-th
character and returns the position of the first occurrence 
of the first character of a string @var{c}. Note that the top of a string
is the 0-th charater. It returns -1 if the character does not appear.
@item @code{sub_str()} generates a substring of @var{str} containing
characters from the @var{start}-th one to the @var{end}-th one.
\E
@end itemize

@example
[185] Line="123 456 (x+y)^3";
123 456 (x+y)^3
[186] Sp1 = str_chr(Line,0," ");
3
[187] D0 = eval_str(sub_str(Line,0,Sp1-1));
123
[188] Sp2 = str_chr(Line,Sp1+1," ");
7
[189] D1 = eval_str(sub_str(Line,Sp1+1,Sp2-1));
456
[190] C = eval_str(sub_str(Line,Sp2+1,str_len(Line)-1));
x^3+3*y*x^2+3*y^2*x+y^3
@end example