=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/builtin/string.texi,v retrieving revision 1.1.1.1 retrieving revision 1.5 diff -u -p -r1.1.1.1 -r1.5 --- OpenXM/src/asir-doc/parts/builtin/string.texi 1999/12/08 05:47:44 1.1.1.1 +++ OpenXM/src/asir-doc/parts/builtin/string.texi 2000/03/02 07:46:14 1.5 @@ -1,28 +1,43 @@ +@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/string.texi,v 1.4 2000/02/07 07:11:38 noro Exp $ +\BJP @node 文字列に関する演算,,, 組み込み函数 @section 文字列に関する演算 +\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 -@node rtostr,,, 文字列に関する演算 +\JP @node rtostr,,, 文字列に関する演算 +\EG @node rtostr,,, Strings @subsection @code{rtostr} @findex rtostr @table @t @item rtostr(@var{obj}) -:: @var{obj} を文字列に変える. +\JP :: @var{obj} を文字列に変える. +\EG :: Convert @var{obj} into a string. @end table @table @var @item return -文字列 +\JP 文字列 +\EG string @item obj -任意 +\JP 任意 +\EG arbitrary @end table @itemize @bullet +\BJP @item 任意のオブジェクト @var{obj} を文字列に変える. @item @@ -30,6 +45,17 @@ 添字付きの不定元を生成する場合に多く用いられる. @item 逆に, 文字列を不定元に変換する時には, @code{strtov} を用いる. +\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 @@ -46,27 +72,33 @@ afo1 @end example @table @t -@item 参照 +\JP @item 参照 +\EG @item References @fref{strtov}, @fref{type}. @end table -@node strtov,,, 文字列に関する演算 +\JP @node strtov,,, 文字列に関する演算 +\EG @node strtov,,, Strings @subsection @code{strtov} @findex strtov @table @t @item strtov(@var{str}) -:: @var{str} (文字列) を不定元に変える. +\JP :: @var{str} (文字列) を不定元に変える. +\EG :: Convert a string @var{str} into an indeterminate. @end table @table @var @item return -不定元 +\JP 不定元 +\EG intederminate @item str -不定元として変換可能な文字列 +\JP 不定元として変換可能な文字列 +\EG string which is valid to constitute an indeterminate. @end table @itemize @bullet +\BJP @item 不定元として変換可能な文字列を不定元に変える. @item @@ -75,6 +107,18 @@ afo1 @item @code{rtostr()} と組合せて, プログラム中で自動的に不定元を生成したい時に 用いられる. +\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 @@ -87,7 +131,180 @@ afo @end example @table @t -@item 参照 +\JP @item 参照 +\EG @item References @fref{rtostr}, @fref{type}, @fref{uc}. @end table +\JP @node eval_str,,, 文字列に関する演算 +\EG @node eval_str,,, Strings +@subsection @code{eval_str} +@findex eval_str + +@table @t +@item eval_str(@var{str}) +\JP :: @var{str} (文字列) を評価する. +\EG :: Evaluates a string @var{str}. +@end table + +@table @var +@item return +\JP オブジェクト +\EG object +@item str +\JP @b{Asir} の parser が受理可能な文字列 +\EG string which can be accepted by @b{Asir} parser +@end table + +@itemize @bullet +\BJP +@item +@b{Asir} の parser が受理可能な文字列を評価してその結果を返す. +@item +評価可能な文字列は, 式を表すものに限る. +@item +論理的には @code{rtostr()} の逆関数となる. +\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 参照 +\EG @item References +@fref{rtostr} +@end table + +\JP @node strtoascii asciitostr,,, 文字列に関する演算 +\EG @node strtoascii asciitostr,,, Strings +@subsection @code{strtoascii}, @code{asciitostr} +@findex strtoascii +@findex asciitostr + +@table @t +@item strtoascii(@var{str}) +\JP :: 文字列をアスキーコードで表す. +\EG :: Converts a string into a sequence of ASCII codes. +@item asciitostr(@var{list}) +\JP :: アスキーコードの列を文字列に変換する. +\EG :: Converts a sequence of ASCII codes into a string. +@end table + +@table @var +@item return +\JP @code{strtoascii()}:リスト; @code{asciitostr()}:文字列 +\EG @code{strtoascii()}:list; @code{asciitostr()}:string +@item str +\JP 文字列 +\EG string +@item list +\JP 1 以上 256 未満の整数からなるリスト +\EG list containing positive integers less than 256. +@end table + +@itemize @bullet +\BJP +@item +@code{strtoascii()} は文字列を整数のリストに変換する. 各 +整数は文字列のアスキーコードを表す. +@item +@code{asciitostr()} は @code{asciitostr()} の逆関数である. +\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,,, 文字列に関する演算 +\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 :: 文字列の長さを返す. +\EG :: Returns the length of a string. +@item str_chr(@var{str},@var{start},@var{c}) +\JP :: 文字が最初に現れる位置を返す. +\EG :: Returns the position of the first occurrence of a character in a string. +@item sub_str(@var{str},@var{start},@var{end}) +\JP :: 部分文字列を返す. +\EG :: Returns a substring of a string. +@end table + +@table @var +@item return +\JP @code{str_len()}, @code{str_chr()}:整数; @code{sub_str()}:文字列 +\EG @code{str_len()}, @code{str_chr()}:integer; @code{sub_str()}:string +@item str,c +\JP 文字列 +\EG string +@item start,end +\JP 非負整数 +\EG non-negative integer +@end table + +@itemize @bullet +\BJP +@item @code{str_len()} は文字列の長さを返す. +@item @code{str_chr()} は @var{str} の @var{start} 番目の文字からスキャンして +最初に @var{c} の最初の文字が現れた位置を返す. 文字列の先頭は 0 番目とする. +指定された文字が現れない場合には -1 を返す. +@item @code{sub_str()} は, @var{str} の @var{start} 番目から @var{end} 番目 +までの部分文字列を生成し返す. +\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