Это команда comterp, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
comterp - демонстратор интерпретатора распределенных команд
СИНТАКСИС
Comterp
Comterp удаленные
Comterp сервер "портнум"
Comterp регистратор "портнум"
Comterp клиент "хост" "portnum" ["файл"]
Comterp telcat "хост" "portnum" ["файл"]
Comterp запустить "файл"
Comterp "expr"
ОПИСАНИЕ
comterp демонстрирует командный интерпретатор, встроенный в ivtools. Пользователь (или клиент
program) может взаимодействовать с comterp через stdin и stdout или telnet (когда ACE встроен).
Синтаксис команды представляет собой список команд, разделенных точкой с запятой, с произвольным числом
параметры, заключенные в круглые скобки, с поддержкой дополнительных параметров и ключевого слова
аргументы, то есть:
команда2 (аргумент1 аргумент2 аргумент3: ключ1 значение1: ключ2 значение2);
command1 (arg1 arg2 arg3: key1 val1: key2 val2)
Бинарные выражения, подобные C, могут быть встроены в любое место командного языка, используя
операторы в таблице ниже. Переменные можно создавать на лету с помощью присваивания
оператор (т.е. «мяч = 1» создает целочисленную переменную «мяч», равную 1). Незавершенный
выражения вызывают автоматическое расширение командной строки (до тех пор, пока синтаксический анализатор не определит
выражение завершено). «()», «{}» и «[]» могут использоваться как взаимозаменяемые.
КОМАНДА ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Comterp
Вызвать единственный командный интерпретатор для взаимодействия через stdin и stdout.
comterp удаленный
Вызвать единственный командный интерпретатор, как по умолчанию, и включить удаленную команду для
доступ к другим компьютерам в режиме сервера.
comterp сервер "portnum"
Прослушивает и принимает соединения на portnum, затем настраивает командный интерпретатор на ожидание
для и обработки команд из этого соединения.
регистратор comterp "portnum"
Прослушивает и принимает соединения на портнуме, а затем просто пересылает входящие сообщения
на stdout, возвращаясь с новой строкой. В целях отладки на самом деле не используется
переводчик.
comterp client "host" "portnum" ["file"]
Подключитесь к порту на хосте и отправьте / получите текстовые буферы с завершением новой строки. Для
в целях отладки, а не в использовании интерпретатора.
comterp telcat "хост" "portnum" ["файл"]
Подключитесь к порту на хосте, перемотайте файл и закройте соединение. Не совсем польза
переводчика тоже.
comterp запустить "файл"
Запустите содержимое файла и выйдите.
comterp "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
- sub 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 двоичный
== 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
|| или 40 двоичных значений L-to-R
, кортеж 35 L-to-R двоичный
,, поток concat 33 L-to-R двоичный
$ stream 32 Унарный префикс R-to-L
$$ list 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
dbl = log2 (x) - возвращает десятичный логарифм числа x
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 () - возвращает значение пи
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) - инвертировать аффинное преобразование
матрица =разоблачение(матрица) - транспонировать произвольную матрицу
матрица = матрица * матрица - умножение матриц
СТАТИСТИЧЕСКИЕ / СЛУЧАЙНЫЕ КОМАНДЫ:
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 или
строка) в списке (или строке), ноль, если не найден.
STREAM КОМАНДЫ:
val = next (stream) - вернуть следующее значение из потока
strm = stream (ostrm | list | attrlist | val) - копировать поток или конвертировать список
cnt = each (strm) - пройти поток, возвращающий его длину
comp = filter (comps classid) - фильтровать поток comps для соответствия classid
КОНТРОЛЬ КОМАНДЫ (с помощью после оценка):
val = cond (testexpr trueexpr falseexpr) - оценить testexpr, и если true, оценить и
вернуть trueexpr, иначе оценить и вернуть falseexpr
val = if (testexpr: then expr: else expr) - оценить testexpr и выполнить: then
выражение, если истина, выражение: else, если ложь.
val = for (initexpr whileexpr [nextexpr [bodyexpr]]: body expr) - цикл for
val = while ([testexpr [bodyexpr]]: nilchk: until: body expr) - цикл while
val = switch (val key-body-pair) - оператор переключения (: casen для pos.,: case_n для neg.,
в противном случае: символ)
continue - перейти к следующей итерации цикла for или while
break ([retval]) - выйти из цикла for или while
ДРУГИЕ КОМАНДЫ
help (cmdname [cmdname ...]: all: posteval) - справка по командам
val = trace ([flag]: get) - переключить или установить режим трассировки
pause ([msgstr]) - приостановить выполнение скрипта до C / R
step () - переключить пошаговое выполнение скрипта
fileobj | pipeobj = open ([filename [modestr]]: pipe: in: out: err) - команда открытия файла
close (fileobj | pipeobj) - команда закрытия файла
[str] = print ([fmtstr] [val [val1 [... valn]]]: строка |: 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) - вернуть целочисленные идентификаторы, связанные с
символ (ы)
sym | lst = symbol (symid [symid ...]) - вернуть символ (символы), связанный с целым идентификатором (ами)
val | lst = symval (symbol [symbol ...]) - возвращаемое значение (я), связанное с символом
переменные (ы)
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 (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) - преобразовать любое число в краткое
i = int (num: u) - преобразовать любое число в int
l = long (num: u) - преобразовать любое число в длинное
f = float (num) - преобразовать любое число в число с плавающей точкой
d = double (num) - преобразовать любое число в двойное
sym | lst = type (val [val ...]) - возвращаемый символ (символы) типа для значения (значений)
sym | lst = class (val [val ...]) - возврат символа (ов) класса для значения (значений) типа объекта
int = ctoi (char) - преобразовать символ в целое число
flag = isspace (char) - вернуть истину, если символ является пробелом
flag = isdigit (char) - вернуть истину, если символ является числовой цифрой
flag = isspace (char) - вернуть истину, если символ является алфавитным
str = arg (n) - вернуть аргумент командной строки
n = narg (n) - вернуть количество аргументов командной строки
num = nand (ab) - поразрядное И-НЕ (отрицательное И)
num = nor (ab) - побитовое ИЛИ (отрицательное ИЛИ)
num = xnor (ab) - побитовое исключающее ИЛИ (исключаемое исключающее ИЛИ)
ТОЛЬКО IN SERVER РЕЖИМ
str = timeexpr (comstr: sec n) - командная строка для выполнения через определенные промежутки времени
Используйте comterp онлайн с помощью сервисов onworks.net