Це команда comterp, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
comterp - розподілений демонстратор інтерпретатора команд
СИНТАКСИС
комптерп
комптерп віддалений
комптерп сервер "portnum"
комптерп реєстратор "portnum"
комптерп клієнт "хост" "portnum" ["файл"]
комптерп telcat "хост" "portnum" ["файл"]
комптерп запустити "файл"
комптерп "expr"
ОПИС
comterp демонструє інтерпретатор команд, включений до ivtools. Користувач (або клієнт
програма) може взаємодіяти з comterp через stdin і stdout або telnet (якщо вбудований ACE).
Синтаксис команди — це список команд, розділених крапкою з комою з довільною кількістю
параметри, узяті в дужки, з підтримкою необов’язкових параметрів і ключових слів
аргументи, тобто:
команда2(arg1 arg2 arg3 :key1 val1 :key2 val2);
команда1(arg1 arg2 arg3 :key1 val1 :key2 val2)
С-подібні двійкові вирази можуть бути вбудовані в будь-яку частину командної мови за допомогою
операторів у таблиці нижче. Змінні можна створювати на льоту за допомогою присвоєння
оператор (тобто "ball=1" створює цілу змінну "ball", встановлену на 1). Незавершений
вирази викликають автоматичне розширення командного рядка (поки синтаксичний аналізатор не визначить
вираз закінчений). "(), {}" і "[]" можна використовувати як взаємозамінні.
КОМАНДА ВАРІАНТИ
комптерп
Викликати один інтерпретатор команд для взаємодії через stdin і stdout.
пульт comterp
Викликати один інтерпретатор команд, як і стандартний, і включити віддалену команду для
доступ до інших comterp в режимі сервера.
comterp сервер "portnum"
Прослуховує та приймає з’єднання на portnum, а потім налаштовує інтерпретатор команд для очікування
для та обробляти команди з цього підключення.
comterp реєстратор "portnum"
Прослуховує та приймає з’єднання на portnum, а потім просто пересилає вхідні повідомлення
до стандартного виведення, під час підтвердження з новими рядками. Для цілей налагодження, насправді не використання
перекладач.
comterp клієнт "хост" "portnum" ["файл"]
Підключіться до номера порту на хості та відправляйте/отримуйте текстові буфери з завершенням нового рядка. Для
налагодження, а не використання інтерпретатора.
comterp telcat "хост" "portnum" ["файл"]
Підключіться до порту на хості, завантажте файл, а потім закрийте з’єднання. Не дуже корисно
перекладача.
comterp запустити "файл"
Запустіть вміст файлу, а потім вийдіть.
comperp "expr"
Оцініть один вираз, а потім вийдіть.
ОПЕРАТОР ТАБЛИЦЯ
Ім'я команди операторів Тип порядку пріоритету
--------- ------------ --------- ----- ----
. двійкова точка 130 R-to-L
` bquote 125 одинарний префікс R-to-L
! заперечувати одинарний префікс 110 R-to-L
~ bit_not 110 одинарний префікс R-to-L
++ incr 110 R-to-L унарний префікс
++ incr_after 110 R-to-L унарний-постфікс
- мінус 110 одинарний префікс R-to-L
-- decr 110 R-to-L унарний префікс
-- decr_after 110 R-to-L унарний-постфікс
** повторити двійковий код 90 L-to-R
.. повторити 80 двійкових файлів L-to-R
% 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-to-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
== екв. 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
|| або 40 двійкових L-to-R
, кортеж 35 L-to-R двійковий
,, потік concat 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) -- повертає арктангенс y над x
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) -- інвертувати афінне перетворення
матриця=xpose(матриця) -- транспонувати довільну матрицю
matrix=matrix*matrix -- множення матриці
СТАТИСТИЧНИЙ/ВИПАДКОВИЙ КОМАНДІ:
sum(val1[,val2[,...,valn]]) -- повернути суму значень
mean(val1[,val2[,...,valn]]) -- повернути середнє значення
var(val1[,val2[,...,valn]]) -- повернути дисперсію значень
stddev(val1[,val2[,...,valn]]) -- повертає стандартне відхилення значень
rand([minval,maxval]) -- повертає випадкове число від 0 до 1 або minval,maxval
srand(seedval) -- генератор випадкових чисел
СПИСОК КОМАНДІ:
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) у списку (або рядку), нуль, якщо не знайдено.
ПОТІК КОМАНДІ:
val=next(stream) -- повернути наступне значення з потоку
strm=stream(ostrm|list|attrlist|val) -- копіювати потік або конвертувати список
cnt=each(strm) -- обхід потоку, повертаючи його довжину
comp=filter(comps classid) -- фільтрувати потік comps для відповідності classid
КОНТРОЛЬ КОМАНДИ (З використанням після оцінка):
val=cond(testexpr trueexpr falseexpr) -- оцінити testexpr, а якщо істинно, оцінити та
повертати trueexpr, інакше оцінювати та повертати falseexpr
val=if(testexpr :then expr :else expr) -- оцінити testexpr та виконати :then
вираз, якщо істина, вираз :else, якщо хибна.
val=for(initexpr whileexpr [naxtexpr [bodyexpr]] :body expr) -- цикл for
val=while([testexpr [bodyexpr]] :nilchk :until :body expr ) -- цикл while
val=switch(val key-body-pairs) -- оператор перемикання (:casen для поз., :case_n для відмін.,
інакше :symbol)
продовжити -- перейти до наступної ітерації циклу for або while
break([retval]) -- вийти з циклу for або while
ІНШІ КОМАНДИ
help(cmdname [cmdname ...] :all :posteval) -- допомога для команд
val=trace([flag] :get) -- перемикати або встановлювати режим трасування
pause([msgstr]) -- призупинити виконання сценарію до C/R
step() -- перемикати поетапне виконання сценарію
fileobj|pipeobj=open([ім'я файлу [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 [символ ...] | :max) -- повертає цілі ідентифікатори, пов'язані з
символ(и)
sym|lst=symbol(symid [symid ...]) -- повертає символ(и), пов'язаний із цілим ідентифікатором(-ами)
val|lst=symval(символ [символ ...]) -- повертає значення(я), пов'язане із символом
змінні(и)
sym|lst=symadd(sym|str [sym|str ...]) -- створити символ(и) і повернути без пошуку.
sym=symvar(sym) -- повернути символ як є
str=symstr(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(атрибут) -- повертає поле значення пари з крапками
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) як
команд, за бажанням повертайте символ замість нуля
funcobj=func(body :echo) -- інкапсулювати тіло команд у виконуваний об'єкт
val=shell(cmdstr) -- оцінити команду в оболонкі
заснути(мсек) -- мікросекунди сну
mute([flag]) -- встановити або ввімкнути прапор вимкнення звуку
nil([...]) -- прийняти будь-які аргументи та повернути nil
c=char(num :u) -- перетворити будь-яке число в символ
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 ...]) -- повертає символ(и) типу для значення(ів)
sym|lst=class(val [val ...]) -- повернути символ(и) класу для значення(ів) типу об'єкта
int=ctoi(char) -- перетворити символ на ціле число
flag=isspace(char) -- повернути true, якщо символ є пробілом
flag=isdigit(char) -- повертає true, якщо символ є числовою цифрою
flag=isspace(char) -- повернути true, якщо символ є алфавітним
str=arg(n) -- повернути аргумент командного рядка
n=narg(n) -- повертає кількість аргументів командного рядка
num=nand(ab) -- порозрядний NAND (відмінений І)
num=nor(ab) -- порозрядне АБО (заперечне АБО)
num=xnor(ab) -- порозрядне XNOR (відмінене XOR)
ТІЛЬКИ IN SERVER РЕЖИМ
str=timeexpr(comstr :sec n) -- командний рядок для виконання з інтервалами
Використовуйте comterp онлайн за допомогою служб onworks.net