syntax_ru.txt 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. Синтаксис языка состоит из следующих команд:
  2. setchar c - устанавливает значение в текущей ячейке на c
  3. walk n - перейти на n ячеек
  4. change v - изменить значение в текущей ячейке на v (целое число)
  5. mov n - переместить значение текущей ячейки на n клеток
  6. copy n t - копировать значение текущей ячейки в ячейку, расположенную через n клеток от текущей
  7. с использованием буффера, расположенного через t клеток от текущей
  8. print n - вывести значения ячеек от текущей до следующей через n клеток
  9. split v - разбить строку v на символы и распределить их по следующим ячейкам
  10. alias name value - создать псевдоним с именем 'name' и значением 'value'
  11. $name - получить значение из псевдонима name
  12. pointer name n - создать указатель на ячейку n
  13. &name = c - установить значение ячейки по адресу name на 'c'
  14. &name clear - очистить ячейку по адресу name
  15. &name add v - увеличить значение в ячейке по адресу name на v
  16. &name sub v - уменьшить значение в ячейке по адресу name на v
  17. array name n l - создать указатель на ячейки от n до n+l
  18. @name n = c - установить значение ячейки по адресу name[n] на 'c'
  19. @name n clear - очистить ячейку по адресу name[n]
  20. @name n add v - увеличить значение в ячейке по адресу name[n] на v
  21. @name n sub v - уменьшить значение в ячейке по адресу name[n] на v
  22. putchar - вывести символ из текущей ячейки
  23. read - считать один символ из стандартного ввода
  24. reads n - считать символы из стандартного ввода и распределить их по ячейкам от текущей до следующей через n клеток
  25. sum *a *b *c - сложить значения ячеек a и b, и результат сложить в ячейку c (в теории, вы можете использовать эту
  26. функцию в виде sum *a *b *a, но я не уверен, что это сработает)
  27. sub *a *b *c - аналогично с sum, только здесь вычитание
  28. *a - обращение к указателю
  29. # - комментарий
  30. Программа состоит из вызовов определенных команд с их аргументами. Между ними должны располагаться разделители:
  31. '(', ')', ',', ' ', и ';'. Их можно использовать так как вам угодно, они предназначены для улучшения читаемости кода.
  32. Например:
  33. split "Hello, World!\n";
  34. равносильно
  35. split("Hello, World!\n")
  36. Обратите внимение на то, что между указателями и псевдонимами нет конфликтов имен, так как они
  37. хранятся по разному
  38. например:
  39. alias hw "Hello, World!"; # Создание псевдонима hw
  40. pointer hw 1; # Создание указателя hw
  41. split $hw; # Разделить строку, хранящуюся в ПСЕВДОНИМЕ hw
  42. &hw = c; # Установить значение 'c' в ячейку ПО АДРЕСУ hw