Политика оформления кода
Общие
-
Имена классов, модулей и пространств имен начинаются с большой буквы. Остальные имена (свойств, действий, форм, параметров и т. д.) начинаются с маленькой буквы. Если имя состоит из нескольких слов, то каждое последующее слово в имени начинается с большой буквы.
MODULE MyModule;
NAMESPACE MyNamespace;
CLASS MyClass 'My Class';
myProperty 'My Property' = DATA BOOLEAN (MyClass);
myAction 'My Action' (MyClass o) {
myProperty(o) <- TRUE;
}
FORM myForm
; -
Объявления модуля, зависимостей и пространств имен должны разделяться пустыми строками:
MODULE MyModule;
REQUIRE MyModule2;
NAMESPACE MyNamespace; -
Операторы
=
,<
,>
,<=
,>=
,+
,-
отделяются с обеих сторон пробелами.value(x) = 324
-
После запятой ставится пробел. Перед запятой пробела быть не должно.
f(x, y, z) = g(x, y, z) + h(x, y);
FORM test
OBJECTS a = Class1, b = Class2
PROPERTIES VALUE(a), VALUE(b), name(a), name(b)
; -
Объявление каждого нового свойства или действия начинается с новой строки. Если после символа
;
есть другой код, то после символа ставится пробел.runAction1 (X x) = { f(x) <- 1; g(x) <- 1; }
-
При объявлении свойства или действия между именем или типом и символом
(
ставится пробел. При использовании свойства пробел не ставится.nameProperty (MyClass o) = name(property(o));
myProperty = DATA STRING[10] (MyClass);
Действия
-
Каждая "логически вложенная" строка смещается от верхней ровно на 4 пробела. Вложенными считаются действия после
IF
,FOR
,WHILE
, а также после самого объявления свойства:IF x = 1 THEN
f(a) <- TRUE; -
Перед и после символов
{
и<-
ставятся пробелы.FOR f(a) DO {
x(a) <- TRUE;
}или
FOR f(a) DO { x(a) <- TRUE; }
Формы
- Объявление объектов разделяется пустой строкой.
FORM test
OBJECTS a = Object
PROPERTIES(a) VALUE
OBJECTS b = Object
PROPERTIES(b) VALUE
;