ນີ້ແມ່ນ comterp ຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
comterp - ການສາທິດນາຍພາສາຄໍາສັ່ງແຈກຢາຍ
ສະຫຼຸບສັງລວມ
ຄອມພີວເຕີ
ຄອມພີວເຕີ ໄລຍະໄກ
ຄອມພີວເຕີ ເຊີບເວີ "portnum"
ຄອມພີວເຕີ logger "portnum"
ຄອມພີວເຕີ client "host" "portnum" ["file"]
ຄອມພີວເຕີ telcat "host" "portnum" ["file"]
ຄອມພີວເຕີ ແລ່ນ "ໄຟລ໌"
ຄອມພີວເຕີ "expr"
ລາຍລະອຽດ
comterp ສະແດງໃຫ້ເຫັນການແປພາສາຄໍາສັ່ງທີ່ລວມເຂົ້າໃນ ivtools. ຜູ້ໃຊ້ (ຫຼືລູກຄ້າ
program) ສາມາດພົວພັນກັບ comterp ຜ່ານ stdin ແລະ stdout ຫຼື telnet (ເມື່ອ ACE ຖືກສ້າງຂຶ້ນໃນ).
syntax ຄໍາສັ່ງແມ່ນບັນຊີລາຍຊື່ທີ່ແຍກອອກເຄິ່ງຈໍ້າສອງເມັດຂອງຄໍາສັ່ງທີ່ມີຈໍານວນ arbitrary ຂອງ
ຕົວກໍານົດການ enclosed ໃນວົງເລັບ, ສະຫນັບສະຫນູນສໍາລັບພາລາມິເຕີທາງເລືອກແລະຄໍາສໍາຄັນ
ການໂຕ້ຖຽງ, ເຊັ່ນ:
command2(arg1 arg2 arg3 :key1 val1 :key2 val2);
command1(arg1 arg2 arg3 :key1 val1 :key2 val2)
C-like binary expressions ສາມາດຝັງຢູ່ທຸກບ່ອນໃນພາສາຄໍາສັ່ງ, ໂດຍໃຊ້
ຜູ້ປະກອບການໃນຕາຕະລາງຂ້າງລຸ່ມນີ້. ຕົວແປສາມາດສ້າງໄດ້ທັນທີດ້ວຍການມອບໝາຍ
operator (ie "ball=1" ສ້າງຕົວແປ "ball" ຈຳນວນເຕັມທີ່ຕັ້ງເປັນ 1). ບໍ່ໄດ້ສິ້ນສຸດ
expressions ເຮັດໃຫ້ເກີດການຂະຫຍາຍເສັ້ນຄໍາສັ່ງອັດຕະໂນມັດ (ຈົນກ່ວາ parser ກໍານົດ
ການສະແດງອອກແມ່ນສົມບູນ). "(), "{}", ແລະ "[]" ທັງໝົດສາມາດໃຊ້ແລກປ່ຽນກັນໄດ້.
ຄໍາສັ່ງ OPTIONS
ຄອມພີວເຕີ
ຮຽກຮ້ອງໃຫ້ນາຍແປພາສາຄໍາສັ່ງດຽວເພື່ອພົວພັນກັບຜ່ານ stdin ແລະ stdout.
ຄອມພິວເຕີຫ່າງໄກສອກຫຼີກ
ຮຽກຮ້ອງໃຫ້ມີການແປຄໍາສັ່ງດຽວ, ເຊັ່ນດຽວກັນກັບຄ່າເລີ່ມຕົ້ນ, ແລະປະກອບມີຄໍາສັ່ງຫ່າງໄກສອກຫຼີກສໍາລັບການ
ການເຂົ້າເຖິງ compterp ອື່ນໆໃນໂຫມດເຄື່ອງແມ່ຂ່າຍ.
comterp server "portnum"
ຟັງ ແລະຍອມຮັບການເຊື່ອມຕໍ່ຢູ່ໃນ portnum, ຈາກນັ້ນຕັ້ງຕົວແປຄຳສັ່ງເພື່ອລໍຖ້າ
ສໍາລັບແລະດໍາເນີນການຄໍາສັ່ງຈາກການເຊື່ອມຕໍ່ນັ້ນ.
comterp logger "portnum"
ຟັງແລະຍອມຮັບການເຊື່ອມຕໍ່ຢູ່ໃນ portnum, ຫຼັງຈາກນັ້ນພຽງແຕ່ສົ່ງຕໍ່ຂໍ້ຄວາມທີ່ເຂົ້າມາ
ເພື່ອ stdout, ໃນຂະນະທີ່ ack'ing ກັບໃຫມ່. ສໍາລັບຈຸດປະສົງ debugging, ບໍ່ແມ່ນການນໍາໃຊ້ຢ່າງແທ້ຈິງ
ນາຍພາສາ.
comterp client "host" "portnum" ["file"]
ເຊື່ອມຕໍ່ກັບ portnum ກ່ຽວກັບການເປັນເຈົ້າພາບແລະສົ່ງ / ໄດ້ຮັບຂໍ້ຄວາມທີ່ຢຸດເຊົາການແຖວໃຫມ່. ສໍາລັບ
ຈຸດປະສົງ debugging, ບໍ່ແມ່ນການນໍາໃຊ້ຂອງນາຍພາສາ.
comterp telcat "host" "portnum" ["file"]
ເຊື່ອມຕໍ່ກັບ portnum ຢູ່ໃນ host, cat ໄຟລ໌, ຫຼັງຈາກນັ້ນປິດການເຊື່ອມຕໍ່. ບໍ່ແມ່ນການໃຊ້ແທ້ໆ
ຂອງນາຍພາສາຄືກັນ.
comterp ແລ່ນ "ໄຟລ໌"
ດໍາເນີນການເນື້ອໃນຂອງໄຟລ໌ຫຼັງຈາກນັ້ນອອກ.
comterp "expr"
ປະເມີນການສະແດງອອກດຽວຫຼັງຈາກນັ້ນອອກ.
ຜູ້ ດຳ ເນີນການ ຕາຕະລາງ
ຊື່ຄໍາສັ່ງ Operators ປະເພດຄໍາສັ່ງບູລິມະສິດ
--------- ------------ -------- ----- ----
. ຈຸດ 130 R-to-L ໄບນາຣີ
` bquote 125 R-to-L unary-prefix
! ລົບ 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
- ລົບ 110 R-to-L unary-prefix
-- decr 110 R-to-L unary-prefix
-- decr_after 110 R-to-L unary-postfix
** ເຮັດຊ້ຳ 90 L-to-R binary
.. iterate 80 L-to-R binary
% mod 70 L-to-R ໄບນາຣີ
* mpy 70 L-to-R binary
/ div 70 L-to-R binary
+ ເພີ່ມ 60 L-to-R binary
- sub 60 L-to-R binary
<< lshift 55 L-to-R ໄບນາຣີ
>> rshift 55 L-to-R binary
<lt 50 L-to-R ໄບນາຣີ
<= lt_or_eq 50 L-to-R ໄບນາຣີ
> gt 50 L-to-R binary
>= gt_or_eq 50 L-to-R ໄບນາຣີ
!= not_eq 45 L-to-R ໄບນາຣີ
== eq 45 L-to-R ໄບນາຣີ
& bit_and 44 L-to-R ໄບນາຣີ
^ bit_xor 43 L-to-R ໄບນາຣີ
| bit_or 42 L-to-R ໄບນາຣີ
&& ແລະ 41 L-to-R binary
|| ຫຼື 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
$$ list 32 R-to-L unary-prefix
%= mod_assign 30 R-to-L ໄບນາຣີ
*= mpy_assign 30 R-to-L ໄບນາຣີ
+= add_assign 30 R-to-L binary
-= sub_assign 30 R-to-L ໄບນາຣີ
/= div_assign 30 R-to-L ໄບນາຣີ
= ກຳນົດ 30 R-to-L binary
; seq 10 L-to-R binary
ຄະນິດສາດ ຄຳສັ່ງ:
n=min(ab) -- ກັບຄືນຕໍ່າສຸດຂອງ a ແລະ b
n=max(ab) -- ຕອບສູງສຸດຂອງ a ແລະ b
n=abs(a) -- ຕອບຄ່າຢ່າງແທ້ຈິງຂອງ a
dbl=exp(x) -- ຕອບຄ່າ e ທີ່ຍົກຂຶ້ນມາເປັນຄ່າ x
dbl=log(x) -- ຕອບຄ່າ logarithm ທຳມະຊາດຂອງ x
dbl=log10(x) -- ຕອບຄ່າ base-10 logarithm ຂອງ x
dbl=log2(x) -- ຕອບຄ່າ base-2 logarithm ຂອງ x
dbl=pow(xy) -- ຕອບຄ່າຂອງ x ທີ່ຍົກຂຶ້ນມາເປັນກຳລັງຂອງ y
dbl=acos(x) -- ຕອບຄ່າ arc cosine ຂອງ x ໃນເຣດຽນ
dbl=asin(x) -- ຕອບຄ່າ arc sine ຂອງ x ໃນເຣດຽນ
dbl=atan(x) -- ຕອບຄ່າເສັ້ນໂຄ້ງຂອງ x ໃນເຣດຽນ
dbl=atan2(yx) -- ຕອບຄ່າ tangent ຂອງ y ເໜືອ x
dbl=cos(x) -- ຕອບ cosine ຂອງ x ເຣດຽນ
dbl=sin(x) -- ຕອບຄ່າ sine ຂອງ x radians
dbl=tan(x) -- ຕອບຄ່າ tangent ຂອງ x ເຣດຽນ
dbl=sqrt(x) -- ຕອບຄ່າຮາກທີ່ສອງຂອງ x
dbl=pi() -- ຕອບຄ່າຂອງ pi
dbl=radtodeg(dbl) -- ປ່ຽນເຣດຽນເປັນອົງສາ
dbl=degtorad(dbl) -- ປ່ຽນອົງສາເປັນເຣດຽນ
num=floor(num) -- ສົ່ງຄ່າຈຳນວນເຕັມທີ່ໃກ້ຄຽງທີ່ສຸດໜ້ອຍກວ່າ ຫຼືເທົ່າກັບ argument
num=ceil(num) -- ຕອບຄ່າຈຳນວນເຕັມທີ່ໃກ້ຄຽງທີ່ສຸດຫຼາຍກວ່າ ຫຼືເທົ່າກັບ argument
num=round(num) -- ຕອບຄ່າຈຳນວນເຕັມທີ່ໃກ້ຄຽງທີ່ສຸດ
AFFINE ການຫັນປ່ຽນ ແລະ MATRIX ຄຳສັ່ງ:
point=xform(x,y a00,a01,a10,a11,a20,a21) -- affine transform ຂອງ x,y ພິກັດ
affine=invert(a00,a01,a10,a11,a20,a21) -- invert affine transform
matrix=xpose(matrix) -- ແປ matrix arbitrary
matrix=matrix*matrix -- ການຄູນເມຕຣິກ
ສະຖິຕິ/ແບບສຸ່ມ ຄຳສັ່ງ:
sum(val1[,val2[,...,valn]]) -- ຜົນບວກຂອງຄ່າ
mean(val1[,val2[,...,valn]]) -- ຕອບຄ່າສະເລ່ຍຂອງຄ່າ
var(val1[,val2[,...,valn]]) -- ກັບຄືນຄວາມແປປວນຂອງຄ່າ
stddev(val1[,val2[,...,valn]]) -- ກັບຄືນມາດຕະຖານ deviation ຂອງຄ່າ
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) -- return (ຫຼື set or insert after) nth item
ໃນລາຍການ ຫຼືສະຕຣິງ
num=size(list|attrlist|str) -- ຂະໜາດກັບຄືນຂອງລາຍຊື່ (ຫຼືສະຕຣິງ)
val=index(list|str val|char|str :last :all :substr) -- return index of value (ຫຼື char ຫຼື
string) ໃນບັນຊີລາຍຊື່ (ຫຼື string), nil ຖ້າບໍ່ພົບ.
STREAM ຄຳສັ່ງ:
val=next(stream) -- ສົ່ງຄ່າຕໍ່ໄປຈາກກະແສ
strm=stream(ostrm|list|attrlist|val) -- ສຳເນົາກະແສ ຫຼືລາຍການປ່ຽນ
cnt=each(strm) -- traverse stream ກັບຄືນຄວາມຍາວຂອງມັນ
comp=filter(comps classid) -- filter stream of comps for matching classid
ການຄວບຄຸມ ສາມາດ (ການນໍາໃຊ້ ກະທູ້ ການປະເມີນຜົນ):
val=cond(testexpr trueexpr falseexpr) -- ປະເມີນ testexpr, ແລະຖ້າເປັນຈິງ, ປະເມີນ ແລະ
ກັບຄືນ trueexpr, ຖ້າບໍ່ດັ່ງນັ້ນປະເມີນແລະສົ່ງຄືນ falseexpr
val=if(testexpr : then expr :else expr) -- ປະເມີນ testexpr ແລະປະຕິບັດ :ຫຼັງຈາກນັ້ນ.
expression if true, the :else expression if false.
val=for(initexpr whileexpr [nextexpr [bodyexpr]] : body expr) -- ສໍາລັບ loop
val=while([testexpr [bodyexpr]] :nilchk :until :body expr ) -- while loop
val=switch(val key-body-pairs) -- ຄໍາສັ່ງສະຫຼັບ (:casen ສໍາລັບ pos., :case_n ສໍາລັບ neg.,
ຖ້າບໍ່ດັ່ງນັ້ນ: ສັນຍາລັກ)
ສືບຕໍ່ -- ຂ້າມໄປການຊໍ້າຄືນຕໍ່ໄປຂອງ for or while loop
break([retval]) -- break out of for or while loop
ອື່ນໆ ສາມາດ
help(cmdname [cmdname ...] :all :posteval) -- help for commands
val=trace([flag] :get) -- ສະຫຼັບ ຫຼືຕັ້ງໂໝດຕິດຕາມ
pause([msgstr]) -- ຢຸດການປະຕິບັດສະຄຣິບຊົ່ວຄາວຈົນກ່ວາ C/R
step() -- ສະຫຼັບການດຳເນີນການສະຄຣິບແບບ stepwise
fileobj|pipeobj=open([filename [modestr]] :pipe :in :out :err) -- open file command
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 ...] | :max) -- return integer id(s) ທີ່ກ່ຽວຂ້ອງກັບ
ສັນຍາລັກ
sym|lst=symbol(symid [symid ...]) -- ສັນຍາລັກກັບຄືນທີ່ເຊື່ອມໂຍງກັບ integer id(s)
val|lst=symval(ສັນຍາລັກ [ສັນຍາລັກ ...]) -- ຜົນຕອບແທນທີ່ກ່ຽວຂ້ອງກັບສັນຍາລັກ
ຕົວແປ
sym|lst=symadd(sym|str [sym|str ...]) -- ສ້າງສັນຍາລັກແລະກັບຄືນໂດຍບໍ່ມີການຊອກຫາ.
sym=symvar(sym) -- ສັນຍາລັກກັບຄືນ as-is
str=symstr(sym) -- ກັບຄືນສະບັບສະຕຣິງຂອງສັນຍາລັກ
n=strref(str|symid) -- ຕອບສະຕຣິງອ້າງອີງຈຳນວນ
lst=split(ສັນຍາລັກ|string :tokstr [delim] :tokval [delim] :keep :reverse) -- ສັນຍາລັກແຍກ
ຫຼື string ເຂົ້າໄປໃນບັນຊີລາຍຊື່ຂອງຕົວອັກສອນ (ຫຼື tokens).
str=join(clist :sym) -- ເຂົ້າຮ່ວມລາຍຊື່ຂອງຕົວອັກສອນເຂົ້າໃນສະຕຣິງ
str=substr(str n|str :after :nonil) -- ແຍກຕົວໜັງສືອອກຈາກສະຕຣິງ (:nonil returns
ສະຕຣິງຖ້າບໍ່ກົງກັນ)
bool=eq(str1 str2 :n len) -- ການປຽບທຽບສະຕຣິງບາງສ່ວນ
bool=eq(sym1 sym2 :sym) -- ການປຽບທຽບສັນຍາລັກ
postfix(arg1 [arg2 [arg3 ... [argn]]]) -- echo unevaluated arguments postfix (ກັບ
[narg|nkey] ຫຼັງຈາກຄໍາສັ່ງທີ່ກໍານົດໄວ້, {narg|nkey} ຫຼັງຈາກຄໍາສັ່ງທີ່ບໍ່ໄດ້ກໍານົດ, (narg) ຫຼັງຈາກ
ປຸ່ມ, ແລະ * ປະຕິບັດຕາມຄໍາສັ່ງການປະເມີນຜົນຫລັງ)
parse(fileobj) -- parse ການສະແດງອອກດຽວຈາກໄຟລ໌
arr=posteval(arg1 [arg2 [arg3 ... [argn]]]) -- post-evaluate every fixed argument (ຈົນກ່ວາ
nil) ແລະກັບຄືນ array
sym=attrname(attribute) -- ຕອບຊື່ຊ່ອງຂໍ້ມູນຂອງຄູ່ຈຸດ
val=attrval(attribute) -- ຊ່ອງຂໍ້ມູນຄ່າກັບຄືນຂອງຄູ່ຈຸດ
dotlst=dot(ຊື່) -- ສ້າງລາຍການຄູ່ dotted ຫວ່າງເປົ່າ
quit() -- ອອກຈາກນາຍພາສາ
exit() -- ອອກຈາກແອັບພລິເຄຊັນທັງໝົດ
empty() -- ຖະແຫຼງການຫວ່າງເປົ່າ
val=run(filename :str :popen) -- ແລ່ນຄຳສັ່ງຈາກໄຟລ໌ (ຫຼື string)
val=remote(hoststr portnum cmdstr :nowait) -- ປະເມີນຄ່າຄຳສັ່ງຈາກໄລຍະໄກຈາກນັ້ນ
ປະເມີນຜົນໄດ້ຮັບໃນທ້ອງຖິ່ນ
val=eval(cmdstr|funcobj [cmdstr|funcobj ...] :symret ) -- ປະເມີນ string (ຫຼື funcobj) as
ຄໍາສັ່ງ, ທາງເລືອກກັບຄືນສັນຍາລັກແທນທີ່ຈະເປັນ nil
funcobj=func(body :echo) -- encapsulate body of commands into an executable object.
val=shell(cmdstr) -- ປະເມີນຄໍາສັ່ງໃນ shell
ນອນຫລັບ(msec) -- ນອນໄມໂຄວິນາທີ
mute([ທຸງ]) -- ຕັ້ງ ຫຼືສະຫຼັບທຸງປິດສຽງ
nil([...]) -- ຍອມຮັບການໂຕ້ຖຽງໃດໆ ແລະສົ່ງຄືນ nil
c=char(num :u) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນ char
s=short(num :u) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນສັ້ນ
i=int(num :u) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນ int
l=long(num :u) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນຍາວ
f=float(num) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນ float
d=double(num) -- ປ່ຽນຕົວເລກໃດນຶ່ງເປັນສອງເທົ່າ
sym|lst=type(val [val ...]) -- ສັນຍາລັກປະເພດກັບຄືນສໍາລັບຄ່າ(s)
sym|lst=class(val [val ...]) -- return class symbol(s) ສຳລັບຄ່າຂອງປະເພດວັດຖຸ
int=ctoi(char) -- ປ່ຽນຕົວອັກສອນເປັນຈຳນວນເຕັມ
flag=isspace(char) -- ກັບຄືນ true ຖ້າຕົວອັກສອນແມ່ນຍະຫວ່າງ
flag=isdigit(char) -- ກັບຄືນ true ຖ້າຕົວອັກສອນເປັນຕົວເລກ
flag=isspace(char) -- ກັບຄືນ true ຖ້າຕົວອັກສອນເປັນຕົວອັກສອນ
str=arg(n) -- ກັບຄືນ argument ແຖວຄໍາສັ່ງ
n=narg(n) -- ກັບຄືນຈໍານວນຂອງການໂຕ້ຖຽງແຖວຄໍາສັ່ງ
num=nand(ab) -- bitwise NAND(negated AND)
num=nor(ab) -- bitwise NOR (negated OR)
num=xnor(ab) -- bitwise XNOR (negated XOR)
ເທົ່ານັ້ນ IN ຜູ້ໃຫ້ບໍລິການ MODE
str=timeexpr(comstr :sec n) -- ສະຕຣິງຄຳສັ່ງເພື່ອດຳເນີນການເປັນໄລຍະໆ
ໃຊ້ comterp ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net