Ito ang command comterp na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
comterp - ipinamahagi na command interpreter demonstrator
SINOPSIS
comterp
comterp malayo
comterp server na "portnum"
comterp logger "portnum"
comterp client "host" "portnum" ["file"]
comterp telcat "host" "portnum" ["file"]
comterp patakbuhin ang "file"
comterp "expr"
DESCRIPTION
Ipinapakita ng comterp ang command interpreter na kasama sa ivtools. Isang user (o kliyente
program) ay maaaring makipag-ugnayan sa comterp sa pamamagitan ng stdin at stdout o telnet (kapag naka-built in ang ACE).
Ang command syntax ay isang semi-colon na pinaghiwalay na listahan ng mga command na may arbitrary na bilang ng
mga parameter na nakapaloob sa panaklong, na may suporta para sa mga opsyonal na parameter at keyword
mga argumento, ibig sabihin:
command2(arg1 arg2 arg3 :key1 val1 :key2 val2);
command1(arg1 arg2 arg3 :key1 val1 :key2 val2)
Maaaring i-embed ang mga tulad-C na binary na expression saanman sa command language, gamit ang
operator sa talahanayan sa ibaba. Ang mga variable ay maaaring gawin sa mabilisang gamit ang isang takdang-aralin
operator (ibig sabihin, "ball=1" ay lumilikha ng integer "ball" variable na nakatakda sa 1). Hindi natatapos
ang mga expression ay nagdudulot ng awtomatikong extension ng command line (hanggang sa matukoy ng parser ang
kumpleto ang pagpapahayag). Ang "(), "{}", at "[]" ay maaaring gamitin nang palitan.
COMMAND Opsyon
comterp
Mag-invoke ng isang command interpreter para makipag-ugnayan sa pamamagitan ng stdin at stdout.
comterp remote
Mag-invoke ng isang command interpreter, tulad ng default, at magsama ng remote command para sa
pag-access sa ibang comterp sa server mode.
comterp server na "portnum"
Nakikinig at tumatanggap ng mga koneksyon sa portnum, pagkatapos ay nag-setup ng command interpreter para maghintay
para sa at iproseso ang mga utos mula sa koneksyon na iyon.
comterp logger "portnum"
Nakikinig at tumatanggap ng mga koneksyon sa portnum, pagkatapos ay ipasa lang ang mga papasok na mensahe
upang stdout, habang binabalikan ang mga bagong linya. Para sa mga layunin ng pag-debug, hindi talaga isang paggamit ng
ang interpreter.
comterp client "host" "portnum" ["file"]
Kumonekta sa isang portnum sa isang host at magpadala/ tumanggap ng mga bagong linyang tinapos na buffer ng teksto. Para sa
mga layunin ng pag-debug, hindi talaga paggamit ng interpreter.
comterp telcat "host" "portnum" ["file"]
Kumonekta sa isang portnum sa isang host, i-cat ang file, pagkatapos ay isara ang koneksyon. Hindi talaga gamit
ng interpreter alinman.
comterp run "file"
Patakbuhin ang mga nilalaman ng file pagkatapos ay lumabas.
comterp "expr"
Suriin ang isang expression pagkatapos ay lumabas.
OPERATOR TABLE
Pangalan ng Operator Pangalan ng Priyoridad na Uri ng Order
--------- ------------ -------- ----- ----
. tuldok 130 R-to-L binary
` bquote 125 R-to-L unary-prefix
! tanggihan ang 110 R-to-L unary-prefix
~ bit_not 110 R-to-L unary-prefix
++ incr 110 R-to-L unary-prefix
++ incr_after 110 R-to-L unary-postfix
- minus 110 R-to-L unary-prefix
-- decr 110 R-to-L unary-prefix
-- decr_after 110 R-to-L unary-postfix
** ulitin ang 90 L-to-R binary
.. umulit ng 80 L-to-R binary
% mod 70 L-to-R binary
* mpy 70 L-to-R binary
/ div 70 L-to-R binary
+ magdagdag ng 60 L-to-R binary
- sub 60 L-to-R binary
<< lshift 55 L-to-R binary
>> rshift 55 L-to-R binary
< lt 50 L-to-R binary
<= lt_or_eq 50 L-to-R binary
> gt 50 L-to-R binary
>= gt_or_eq 50 L-to-R binary
!= not_eq 45 L-to-R binary
== eq 45 L-to-R binary
& bit_and 44 L-to-R binary
^ bit_xor 43 L-to-R binary
| bit_or 42 L-to-R binary
&& at 41 L-to-R binary
|| o 40 L-to-R binary
, tuple 35 L-to-R binary
,, stream concat 33 L-to-R binary
$ stream 32 R-to-L unary-prefix
$$ listahan 32 R-to-L unary-prefix
%= mod_assign 30 R-to-L binary
*= mpy_assign 30 R-to-L binary
+= add_assign 30 R-to-L binary
-= sub_assign 30 R-to-L binary
/= div_assign 30 R-to-L binary
= magtalaga ng 30 R-to-L binary
; seq 10 L-to-R binary
MATHEMATICAL MGA UTOS:
n=min(ab) -- ibalik ang minimum na a at b
n=max(ab) -- ibalik ang maximum ng a at b
n=abs(a) -- ibalik ang ganap na halaga ng a
dbl=exp(x) -- ibinabalik ang value na itinaas sa kapangyarihan ng x
dbl=log(x) -- ibinabalik ang natural na logarithm ng x
dbl=log10(x) -- ibinabalik ang base-10 logarithm ng x
dbl=log2(x) -- ibinabalik ang base-2 logarithm ng x
dbl=pow(xy) -- ibinabalik ang halaga ng x na itinaas sa kapangyarihan ng y
dbl=acos(x) -- ibinabalik ang arc cosine ng x sa radians
dbl=asin(x) -- ibinabalik ang arc sine ng x sa radians
dbl=atan(x) -- ibinabalik ang arc tangent ng x sa radians
dbl=atan2(yx) -- ibinabalik ang arc tangent ng y sa ibabaw ng x
dbl=cos(x) -- ibinabalik ang cosine ng x radians
dbl=sin(x) -- ibinabalik ang sine ng x radians
dbl=tan(x) -- ibinabalik ang tangent ng x radians
dbl=sqrt(x) -- nagbabalik ng square root ng x
dbl=pi() -- ibinabalik ang halaga ng pi
dbl=radtodeg(dbl) -- i-convert ang radians sa degrees
dbl=degtorad(dbl) -- i-convert ang mga degree sa radians
num=floor(num) -- ibalik ang pinakamalapit na integer value na mas mababa sa o katumbas ng argument
num=ceil(num) -- ibalik ang pinakamalapit na halaga ng integer na mas malaki sa o katumbas ng argumento
num=round(num) -- ibalik ang pinakamalapit na integer value
AFFINE PAGBABAGO AT MATRIX MGA UTOS:
point=xform(x,y a00,a01,a10,a11,a20,a21) -- affine transform ng x,y coordinates
affine=invert(a00,a01,a10,a11,a20,a21) -- baligtarin ang affine transform
matris=xpose(matrix) -- i-transpose ang isang arbitrary na matrix
matrix=matrix*matrix -- multiplication ng matrix
STATISTICAL/RANDOM MGA UTOS:
sum(val1[,val2[,...,valn]]) -- ibalik ang kabuuan ng mga value
mean(val1[,val2[,...,valn]]) -- ibalik ang mean ng mga value
var(val1[,val2[,...,valn]]) -- ibalik ang pagkakaiba-iba ng mga halaga
stddev(val1[,val2[,...,valn]]) -- ibalik ang standard deviation ng mga value
rand([minval,maxval]) -- ibalik ang random na numero sa pagitan ng 0 at 1 o minval,maxval
srand(seedval) -- seed random number generator
LIST MGA UTOS:
lst=list([olst|strm|val] :strmlst :attr :size n) -- gumawa ng listahan, kopyahin ang listahan, o mag-convert
daloy
val=at(list|attrlist|str n :set val :ins val) -- ibalik (o itakda o ipasok pagkatapos) nth item
sa isang listahan o string
num=size(list|attrlist|str) -- return size ng isang listahan (o string)
val=index(list|str val|char|str :last :all :substr) -- return index of value (o char o
string) sa listahan (o string), wala kung hindi natagpuan.
STREAM MGA UTOS:
val=next(stream) -- ibalik ang susunod na value mula sa stream
strm=stream(ostrm|list|attrlist|val) -- kopyahin ang stream o i-convert ang listahan
cnt=each(strm) -- traverse stream na bumabalik sa haba nito
comp=filter(comps classid) -- filter stream ng comps para sa pagtutugma ng classid
Kontrol UTOS (gamit magpaskil pagsusuri):
val=cond(testexpr trueexpr falseexpr) -- suriin ang testexpr, at kung totoo, suriin at
ibalik ang trueexpr, kung hindi man ay suriin at ibalik ang falseexpr
val=if(testexpr :then expr :else expr) -- suriin ang testexpr at isagawa ang :then
expression kung totoo, ang :else expression kung mali.
val=for(initexpr whileexpr [nextexpr [bodyexpr]] :body expr) -- para sa loop
val=while([testexpr [bodyexpr]] :nilchk :until :body expr ) -- while loop
val=switch(val key-body-pairs) -- switch statement (:casen for pos., :case_n for neg.,
kung hindi naman :symbol)
magpatuloy -- lumaktaw sa susunod na pag-ulit ng for o while loop
break([retval]) -- break out of for or while loop
OTHER UTOS
help(cmdname [cmdname ...] :all :posteval) -- tulong para sa mga command
val=trace([flag] :get) -- i-toggle o itakda ang trace mode
pause([msgstr]) -- pause script execution hanggang C/R
step() -- toggle stepwise script execution
fileobj|pipeobj=open([filename [modestr]] :pipe:in:out:err) -- open file command
close(fileobj|pipeobj) -- close file command
[str]=print([fmtstr] [val [val1 [... valn]]] :string|:str :out :err :file fileobj|pipeobj
:prefix str) -- print value na may opsyonal na format na string
str=gets(fileobj|pipeobj) -- nakakakuha ng bagong linyang tinapos na string mula sa isang file
val=global(symbol)|global(symbol)=val|global(symbol :clear)|global(:cnt) -- gumawa ng simbolo
global
int|lst=symid(simbolo [simbolo ...] | :max) -- ibalik ang (mga) integer id na nauugnay sa
(mga) simbolo
sym|lst=symbol(symid [symid ...]) -- return symbol(s) associated with integer id(s)
val|lst=symval(symbol [symbol ...]) -- return value(s) associated with symbol
(mga) variable
sym|lst=symadd(sym|str [sym|str ...]) -- lumikha ng (mga) simbolo at bumalik nang walang paghahanap.
sym=symvar(sym) -- ibalik ang simbolo bilang-ay
str=symstr(sym) -- ibalik ang string na bersyon ng simbolo
n=strref(str|symid) -- ibalik ang bilang ng sanggunian ng string
lst=split(symbol|string :tokstr [delim] :tokval [delim] :keep :reverse) -- split symbol
o string sa listahan ng mga character (o mga token).
str=join(clist :sym) -- isama ang listahan ng mga character sa string
str=substr(str n|str :after :nonil) -- kunin ang mga character mula sa isang string (:nonil returns
string kung walang tugma)
bool=eq(str1 str2 :n len) -- bahagyang paghahambing ng string
bool=eq(sym1 sym2 :sym) -- paghahambing ng simbolo
postfix(arg1 [arg2 [arg3 ... [argn]]]) -- echo ang hindi nasuri na mga argumentong postfix (na may
[narg|nkey] pagkatapos ng tinukoy na mga utos, {narg|nkey} pagkatapos ng mga hindi natukoy na utos, (narg) pagkatapos
mga susi, at isang * sumusunod na mga utos pagkatapos ng pagsusuri)
parse(fileobj) -- parse ng isang expression mula sa isang file
arr=posteval(arg1 [arg2 [arg3 ... [argn]]]) -- post-evaluate ang bawat fixed argument (hanggang sa
nil) at return array
sym=attrname(attribute) -- return name field ng dotted pair
val=attrval(attribute) -- field ng return value ng dotted pair
dotlst=dot(name) -- bumuo ng walang laman na dotted pair list
quit() -- quit the interpreter
exit() -- lumabas sa buong application
empty() -- walang laman na pahayag
val=run(filename :str :popen) -- magpatakbo ng mga command mula sa file (o string)
val=remote(hoststr portnum cmdstr :nowait) -- malayuang suriin ang command string pagkatapos
lokal na suriin ang string ng resulta
val=eval(cmdstr|funcobj [cmdstr|funcobj ...] :symret ) -- suriin ang string (o funcobj) bilang
command, opsyonal na ibalik ang simbolo sa halip na nil
funcobj=func(body :echo) -- i-encapsulate ang isang body ng mga command sa isang executable object
val=shell(cmdstr) -- suriin ang utos sa shell
matulog ka(msec) -- sleep microseconds
mute([flag]) -- itakda o i-toggle ang mute na flag
nil([...]) -- tanggapin ang anumang argumento at ibalik ang nil
c=char(num :u) -- i-convert ang anumang numeric sa isang char
s=short(num :u) -- i-convert ang anumang numeric sa short
i=int(num :u) -- i-convert ang anumang numeric sa isang int
l=long(num :u) -- i-convert ang anumang numeric sa long
f=float(num) -- i-convert ang anumang numeric sa float
d=double(num) -- i-convert ang anumang numeric sa double
sym|lst=type(val [val ...]) -- (mga) simbolo ng uri ng pagbabalik para sa (mga) halaga
sym|lst=class(val [val ...]) -- ibalik ang (mga) simbolo ng klase para sa (mga) halaga ng uri ng bagay
int=ctoi(char) -- i-convert ang character sa integer
flag=isspace(char) -- ibalik ang true kung ang character ay whitespace
flag=isdigit(char) -- ibalik ang true kung ang character ay isang numeric na digit
flag=isspace(char) -- ibalik ang true kung alphabetical ang character
str=arg(n) -- ibalik ang argumento ng command line
n=narg(n) -- ibalik ang bilang ng mga argumento ng command line
num=nand(ab) -- bitwise NAND(negated AT)
num=nor(ab) -- bitwise NOR (negated OR)
num=xnor(ab) -- bitwise XNOR (negated XOR)
LAMANG IN SERVER MODE
str=timeexpr(comstr :sec n) -- command string na ipapatupad sa mga pagitan
Gumamit ng comterp online gamit ang mga serbisyo ng onworks.net