My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Updated Feb 04, 2010 by a.michu...@gmail.com
  BNF_ru  
Краткая памятка по грамматике языка

Краткая памятка по грамматике языка

Грамматика

Программа -- это просто последовательность слов (токенов/tokens). Слова разделяются пробелами; любые пробельные символы в любом количестве обозначат просто разделитель.

Первый символ `#' в строке и все идущие за ним до конца строки символы игнорируются. Это комментарии.

Выражения (statements) состоят из слов.

Выражения

Группировка

Если вам нужно, чтобы набор выражений фигурировал в программе, как одно выражение, вы можете сгруппировать выражения, заключив их в блок begin/end.

Это одно выражением, состоящие из множества вложенных в него:

begin ...STATEMENTS... end

Рисование и перемещения

draw  VAR-OR-VAL VAR-OR-VAL
jump  VAR-OR-VAL VAR-OR-VAL
scale VAR-OR-VAL
right VAR-OR-VAL
left  VAR-OR-VAL
width VAR-OR-VAL

Аффинные преобразования

affinescale  VAR-OR-VAL VAR-OR-VAL # Масштабирование осей
affinerotate VAR-OR-VAL VAR-OR-VAL # Поворот осей
affinematrix VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL # Матрица

Цвета

color    VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL            # красный, жёлтый, зелёный
bgcolor  VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL            # красный, жёлтый, зелёный
mixcolor VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL VAR-OR-VAL # красный, жёлтый, зелёный и множитель

Переменные и вычисления

Присвоения:

set  VAR VAR-OR-VAL  # VAR := VAR-OR-VAL
sin  VAR VAR-OR-VAL  # VAR := sin(VAR-OR-VAL)
cos  VAR VAR-OR-VAL  # VAR := cos(VAR-OR-VAL)
exp  VAR VAR-OR-VAL  # VAR := exp(VAR-OR-VAL)
log  VAR VAR-OR-VAL  # VAR := log(VAR-OR-VAL)
sqrt VAR VAR-OR-VAL  # VAR := sqrt(VAR-OR-VAL)

Вычисления:

add  VAR VAR-OR-VAL  # VAR := VAR + VAR-OR-VAL
sub  VAR VAR-OR-VAL  # VAR := VAR - VAR-OR-VAL
mul  VAR VAR-OR-VAL  # VAR := VAR * VAR-OR-VAL
div  VAR VAR-OR-VAL  # VAR := VAR / VAR-OR-VAL
mod  VAR VAR-OR-VAL  # VAR := VAR % VAR-OR-VAL
pow  VAR VAR-OR-VAL  # VAR := VAR ** VAR-OR-VAL

Изменения:

incr VAR  # VAR := VAR + 1
decr VAR  # VAR := VAR - 1
neg  VAR  # VAR := - VAR
abs  VAR  # VAR := | VAR |

Условия

if CONDITION then STATEMENT
if CONDITION then STATEMENT else STATEMENT

где CONDITION -- это три слова:

VAR-OR-VAL OPERATION VAR-OR-VAL

где OPERATION -- одно из lt, gt, le, ge, eq или ne.

Циклы

iterate VAR-OR-VAL STATEMENT
repeat STATEMENT until CONDITION
while CONDITION STATEMENT

Контекст

local     STATEMENT       # локализация всего контекста
save      STATEMENT       # локализация только значений переменных
transform STATEMENT       # локализация только состояния черепашки

Процедуры

procedure NAME STATEMENT  # декларация процедуры
call      NAME            # вызов процедуры

Другие выражения

nop  # не делать ничего

Sign in to add a comment
Powered by Google Project Hosting