roboforum.ruТехнический форум по робототехнике. |
|
|
Интерпретатор SmileScript v.0.2
---------------------------------------------------------------------
1. Одна строка - одна команда.
2. Комментарий - ;) и следующий текст до конца строки.
3. Перед использованием переменной, её нужно объявить.
4. OUT - это предопределенная переменная буфера вывода, которой можно
пользоваться, как обычной переменной.
5. ERROR [12] означает, что на 12-ой строке произошла ошибка.
6. Числа либо целые, либо с десятичной точкой - float.
7. Если встречается неизвестная команда, то текущая строка выводится
с переводом строки
8. Если что-то не работает, улыбайтесь :)
9. Приоритет операторов убывает справа налево, т.е. конструкция:
:-) A B :p "qwe" :p C :/ D :[] 12 :* 12
означает:
объявить A = B.("qwe".(C/(D=(12*12))));
10. Из управляющих конструкций - гибрид if и while:
:) условие
команды
8) ;) переводит к началу условия (continue)
8( ;) выходит из условия (break)
(:
Если требуется перепрыгнуть к началу условия уровнем выше - 8)8),
аналог continue 2.
11. Что отсутствует:
1. Обработка "скобочных" приоритетов.
2. Булевы операции.
3. Функции.
4. Встроенные функции
КОМАНДА ЧТО ОЗНАЧАЕТ
---------------------------------------------------------------------
:-) Var_name Объявление переменной.
Переменная может содержать только буквы, цифры
и символ подчеркивания. С цифры начинаться низя
:-) Var statement Объявление со значением-результатом выражения
:-( Var_name Удаление переменной.
:YO! или ;YO! Безусловный выход из программы.
8D Вывод списка всех переменных, кроме OUT
:O A Вывод переменной A с переводом строки
(двоеточие и большая буква "О" или ноль)
:o A Вывод переменной A без перевода строки
(двоеточие и маленькая "o")
bla-bla Вывод произвольного текста (under constr)
...
shut up!
:o "text" Вывод строки text
:o 1234 Вывод 1234
A :[] B A = B
A :p B A .= B (приклеивание B к концу A)
A :) B A += B
A :( B A -= B
A :* B A *= B
A :/ B A /= B
A :\ B A %= B
A (: B A <<= B
A ): B A >>= B
A :p B :) C A .= B + C
A :p B :p C A .= B . C
A :p B :( C A .= B - C
A :p B :* C A .= B * C
A :p B :/ C A .= B / C
A :p B :\ C A .= B % C
A :p B (: C A .= B << C
A :p B ): C A .= B >> C
A :[] B :[ C A = B <= C
A :[] B :] C A = B >= C
A :[] B :[[ C A = B < C
A :[] B :]] C A = B > C
A :[] B :| C A = B == C
A :[] B |: C A = B != C
A :[] !B A = !B
:) условие Условие.
команды Команды выполняются, если условие
команды не ноль и не пустая строка.
8) Переход к началу условия.
8)8) Переход к началу условия этажом выше.
8)8)8) Аналог continue 3;
8( Выход из условия.
8(8(8( Аналог break 3;
(: Конец условия.
%) func a, b, c Имя функции, аргументы функции (under constr)
:-) glob_val Глобальная переменная
%-) local_val Локальная переменная (under constr)
commands... Любые команды
<- A return A
(% Конец объявления
%o func A, 2, "c" o% Вызов. Вместо "о" можно использовать ноль
(under constr)
++++++++++[
>++++++++++[
>++++++++++
<-]
<-]
>++++++++++[
>+++++++
<-]
>---.
++++++++++[
>++++++
>+++++++++
>++++++++
>+++++
>+++++
>+++++
>+++++
>++++++++
>++++++++
>++++++++
<<<<<<<<<<-]
>+++++.
>----.
>++.
>-.
>.
>+.
>----.
>--.
>---.
<<.
<<<<.>>>>>>
>+++++.
++++++++++[>++++++>+++++++++>++++++++>+++++
>+++++>+++++>+++++>++++++++>++++++++>++++++++
>+++<<<<<<<<<<<-]>+++++.>----.>++.>-.>.>+.
>----.>--.>---.<<.<<<<.>>>>>>>+++++.>++.
+++++++++++++.-------------[.,]>+++++++++++++.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16