これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド comterp です。
プログラム:
NAME
comterp - 分散コマンドインタープリターのデモンストレーター
SYNOPSIS
コンピュータ
コンピュータ リモート
コンピュータ サーバー「ポート番号」
コンピュータ ロガー「ポート番号」
コンピュータ クライアント "ホスト" "ポート番号" ["ファイル"]
コンピュータ telcat "ホスト" "ポート番号" ["ファイル"]
コンピュータ 「ファイル」を実行する
コンピュータ 「式」
DESCRIPTION
comterp は、ivtools に組み込まれたコマンド インタープリターを示します。 ユーザー(またはクライアント)
プログラム) は、stdin および stdout または Telnet (ACE が組み込まれている場合) を介して comterp と対話できます。
コマンド構文は、セミコロンで区切られた任意の数のコマンドのリストです。
括弧で囲まれたパラメータ。オプションのパラメータとキーワードがサポートされます。
引数、つまり:
コマンド2(arg1 arg2 arg3 :key1 val1 :key2 val2);
コマンド1(引数1 引数2 引数3 :key1 val1 :key2 val2)
C のようなバイナリ式は、コマンド言語のどこにでも埋め込むことができます。
以下の表の演算子。 変数は割り当てを使用してオンザフライで作成できます
演算子 (つまり、「ball=1」は 1 に設定された整数の「ball」変数を作成します)。 未終了
式により、自動的にコマンド ライン拡張が行われます (パーサーが
表現が完了しました)。 「()、{}」、「[]」はすべて同じ意味で使用できます。
COMMAND OPTIONS
コンピュータ
単一のコマンド インタープリタを呼び出して、stdin および stdout 経由で対話します。
コンピュータリモート
デフォルトと同様に単一のコマンド インタープリタを呼び出し、リモート コマンドを含めます。
サーバーモードで他のコンピュータにアクセスします。
コンピュータサーバー「ポート番号」
portnum での接続をリッスンして受け入れ、コマンド インタープリタをセットアップして待機します。
その接続からのコマンドを処理します。
comterp ロガー「portnum」
portnum で接続をリッスンして受け入れ、受信メッセージを転送するだけです
改行で応答を返しながら、stdout に送信します。 デバッグ目的のため、実際には使用しません
通訳者。
comterp クライアント "ホスト" "ポート番号" ["ファイル"]
ホスト上の portnum に接続し、改行で終了するテキスト バッファを送受信します。 のために
デバッグが目的であり、実際にはインタプリタを使用するものではありません。
comterp telcat "ホスト" "ポート番号" ["ファイル"]
ホスト上の portnum に接続し、ファイルを cat してから接続を閉じます。 あまり役に立たない
通訳のどちらかです。
comterp 「ファイル」を実行
ファイルの内容を実行して終了します。
コンタープ「expr」
単一の式を評価して終了します。
オペレーター 表
演算子 コマンド名 優先順位 種類
--------- ------------ -------- ----- ----
。 ドット 130 R-to-L バイナリ
` bquote 125 R-to-L 単項プレフィックス
! negate 110 R-to-L 単項プレフィックス
~ bit_not 110 R-to-L 単項プレフィックス
++ incr 110 R から L への単項プレフィックス
++ incr_after 110 R-to-L 単項後置
- マイナス 110 R-to-L 単項プレフィックス
-- decr 110 R から L への単項プレフィックス
-- decr_after 110 R-to-L 単項後置
** 90 L-to-R バイナリを繰り返します
.. L-to-R バイナリを 80 回繰り返します
% mod 70 L-to-R バイナリ
* mpy 70 L-to-R バイナリ
/ div 70 L-to-R バイナリ
+ 60 個の L-to-R バイナリを追加
- サブ 60 L-to-R バイナリ
<< lshift 55 L から R のバイナリ
>> rshift 55 L-to-R バイナリ
< lt 50 L-to-R バイナリ
<= lt_or_eq 50 L-to-R バイナリ
> gt 50 L-to-R バイナリ
>= gt_or_eq 50 L-to-R バイナリ
!= not_eq 45 L-to-R バイナリ
== eq 45 L から R へのバイナリ
& bit_and 44 L-to-R バイナリ
^ bit_xor 43 L-to-R バイナリ
| bit_or 42 L-to-R バイナリ
&& および 41 L から R のバイナリ
|| または 40 L-to-R バイナリ
、タプル 35 L-to-R バイナリ
、、ストリーム連結 33 L-to-R バイナリ
$ stream 32 R-to-L 単項プレフィックス
$$ リスト 32 R-to-L 単項プレフィックス
%= mod_assign 30 R-to-L バイナリ
*= mpy_assign 30 R-to-L バイナリ
+= add_assign 30 R-to-L バイナリ
-= sub_assign 30 R-to-L バイナリ
/= div_assign 30 R-to-L バイナリ
= 30 個の R-to-L バイナリを割り当てる
; seq 10 L-to-R バイナリ
数学的 コマンド:
n=min(ab) -- a と b の最小値を返します。
n=max(ab) -- a と b の最大値を返します。
n=abs(a) -- a の絶対値を返します。
dbl=exp(x) -- 値 e を x 乗して返します。
dbl=log(x) -- x の自然対数を返します。
dbl=log10(x) -- x の底 10 の対数を返します。
dbl=log2(x) -- x の底 2 の対数を返します。
dbl=pow(xy) -- x の y 乗の値を返します。
dbl=acos(x) -- x の逆余弦をラジアンで返します。
dbl=asin(x) -- x の逆正弦をラジアンで返します。
dbl=atan(x) -- x の逆正接をラジアンで返します。
dbl=atan2(yx) -- x に対する y の逆正接を返します。
dbl=cos(x) -- x ラジアンのコサインを返します。
dbl=sin(x) -- x ラジアンのサインを返します。
dbl=tan(x) -- x ラジアンのタンジェントを返します。
dbl=sqrt(x) -- x の平方根を返します
dbl=pi() -- pi の値を返します。
dbl=radtodeg(dbl) -- ラジアンを度に変換します
dbl=degtorad(dbl) -- 度をラジアンに変換します
num=floor(num) -- 引数以下の最も近い整数値を返します。
num=ceil(num) -- 引数以上の最も近い整数値を返します。
num=round(num) -- 最も近い整数値を返します
アフィン 変換 そして MATRIX コマンド:
point=xform(x,y a00,a01,a10,a11,a20,a21) -- X、Y 座標のアフィン変換
affine=invert(a00,a01,a10,a11,a20,a21) -- アフィン変換を反転します
マトリックス=露出(matrix) -- 任意の行列を転置します。
matrix=matrix*matrix -- 行列の乗算
統計的/ランダム コマンド:
sum(val1[,val2[,...,valn]]) -- 値の合計を返します
means(val1[,val2[,...,valn]]) -- 値の平均を返します
var(val1[,val2[,...,valn]]) -- 値の分散を返します。
stddev(val1[,val2[,...,valn]]) -- 値の標準偏差を返します。
rand([minval,maxval]) -- 0 から 1 までの乱数、または minval,maxval を返します。
srand(seedval) -- シード乱数生成器
LIST コマンド:
lst=list([olst|strm|val] :strmlst :attr :size n) -- リストの作成、リストのコピー、または変換
流れ
val=at(list|attrlist|str n :set val :ins val) -- n 番目の項目を返します (または後に設定または挿入します)。
リストまたは文字列内で
num=size(list|attrlist|str) -- リスト (または文字列) のサイズを返します。
val=index(list|str val|char|str :last :all :substr) -- 値 (または char または
string) リスト (または string) 内、見つからない場合は nil。
STREAM コマンド:
val=next(stream) -- ストリームから次の値を返します
strm=stream(ostrm|list|attrlist|val) -- ストリームをコピーするか、リストを変換します
cnt=each(strm) -- ストリームを走査し、その長さを返します
comp=filter(comps classid) -- クラス ID に一致する comp のストリームをフィルタリングします。
CONTROL コマンド (使用 役職 評価):
val=cond(testexpr trueexpr falseexpr) -- testexpr を評価し、true の場合は、
trueexpr を返し、それ以外の場合は評価して falseexpr を返します。
val=if(testexpr :then expr :else expr) -- testexpr を評価し、:then を実行します。
true の場合は式、false の場合は :else 式。
val=for(iniexpr whileexpr [nextexpr [bodyexpr]] :body expr) -- for ループ
val=while([testexpr [bodyexpr]] :nilchk :until :body expr ) -- while ループ
val=switch(val key-body-pairs) -- switch ステートメント (正の場合は :casen、負の場合は :case_n、
それ以外の場合:シンボル)
continue -- for または while ループの次の反復にスキップします。
Break([retval]) -- for ループまたは while ループから抜け出す
その他 コマンド
help(cmdname [cmdname ...] :all :posteval) -- コマンドのヘルプ
val=trace([flag] :get) -- トレース モードの切り替えまたは設定
stop([msgstr]) -- C/R までスクリプトの実行を一時停止します。
step() -- 段階的なスクリプトの実行を切り替えます
fileobj|pipeobj=open([filename [modestr]] :pipe :in :out :err) -- ファイルを開くコマンド
close(fileobj|pipeobj) -- ファイルを閉じるコマンド
[str]=print([fmtstr] [val [val1 [... valn]]] :string|:str :out :err :file fileobj|pipeobj
:prefix str) -- オプションのフォーマット文字列を使用して値を出力します
str=gets(fileobj|pipeobj) -- ファイルから改行で終了する文字列を取得します。
val=global(symbol)|global(symbol)=val|global(symbol :clear)|global(:cnt) -- シンボルを作成します
全体的な
int|lst=symid(symbol [symbol ...] | :max) -- に関連付けられた整数 ID を返します。
記号
sym|lst=symbol(symid [symid ...]) -- 整数 ID に関連付けられたシンボルを返します。
val|lst=symval(symbol [symbol ...]) -- シンボルに関連付けられた値を返します
変数
sym|lst=symadd(sym|str [sym|str ...]) -- シンボルを作成し、検索せずに返します。
sym=symvar(sym) -- シンボルをそのまま返す
str=symsstr(sym) -- シンボルの文字列バージョンを返します。
n=strref(str|symid) -- 文字列の参照カウントを返します。
lst=split(symbol|string :tokstr [delim] :tokval [delim] :keep :reverse) -- シンボルを分割します
または文字列を文字 (またはトークン) のリストに変換します。
str=join(clist :sym) -- 文字のリストを文字列に結合します。
str=substr(str n|str :after :nonil) -- 文字列から文字を抽出します (:nonil は返します)
一致しない場合は文字列)
bool=eq(str1 str2 :n len) -- 部分的な文字列比較
bool=eq(sym1 sym2 :sym) -- シンボルの比較
postfix(arg1 [arg2 [arg3 ... [argn]]]) -- 未評価の後置引数をエコーします (
[narg|nkey] 定義済みコマンドの後に、{narg|nkey} に未定義のコマンドの後に、(narg) の後に
キー、および評価後のコマンドに続く *)
parse(fileobj) -- ファイルから単一の式を解析します。
arr=posteval(arg1 [arg2 [arg3 ... [argn]]]) -- すべての固定引数を事後評価します (
nil) を返し、配列を返します
sym=attrname(attribute) -- ドットペアの名前フィールドを返します。
val=attrval(attribute) -- ドットペアの戻り値フィールド
dotlst=dot(name) -- 空の点線ペアのリストを作成します
quit() -- インタプリタを終了します
exit() -- アプリケーション全体を終了します
empty() -- 空のステートメント
val=run(filename :str :popen) -- ファイル (または文字列) からコマンドを実行します。
val=remote(hoststr portnum cmdstr :nowait) -- コマンド文字列をリモートで評価し、
結果文字列をローカルで評価する
val=eval(cmdstr|funcobj [cmdstr|funcobj ...] :symret ) -- 文字列 (または funcobj) を次のように評価します。
コマンド、オプションで nil の代わりにシンボルを返す
funcobj=func(body :echo) -- コマンドの本体を実行可能オブジェクトにカプセル化します。
val=shell(cmdstr) -- シェルでコマンドを評価します
眠る(ミリ秒) -- スリープマイクロ秒
mute([flag]) -- ミュート フラグを設定または切り替えます
nil([...]) -- 引数を受け入れて nil を返します
c=char(num :u) -- 任意の数値を文字に変換します
s=short(num :u) -- 任意の数値を short に変換します。
i=int(num :u) -- 任意の数値を int に変換します
l=long(num :u) -- 任意の数値をlongに変換します
f=float(num) -- 任意の数値を浮動小数点に変換します
d=double(num) -- 任意の数値を double に変換します
sym|lst=type(val [val ...]) -- 値の型記号を返します。
sym|lst=class(val [val ...]) -- オブジェクト型の値のクラスシンボルを返します。
int=ctoi(char) -- 文字を整数に変換します
flag=isspace(char) -- 文字が空白の場合は true を返します
flag=isdigital(char) -- 文字が数字の場合は true を返します。
flag=isspace(char) -- 文字がアルファベットの場合は true を返します
str=arg(n) -- コマンドライン引数を返す
n=narg(n) -- コマンドライン引数の数を返す
num=nand(ab) -- ビット単位の NAND(否定 AND)
num=nor(ab) -- ビット単位の NOR (否定 OR)
num=xnor(ab) -- ビットごとの XNOR (否定 XOR)
たったの IN サーバ モード
str=timeexpr(comstr :sec n) -- 一定間隔で実行するコマンド文字列
onworks.net サービスを使用してオンラインで comterp を使用する