Перейти к основному содержимому
Версия: 4.x

Политика оформления кода

Общие

  • Имена классов, модулей и пространств имен начинаются с большой буквы. Остальные имена (свойств, действий, форм, параметров и т. д.) начинаются с маленькой буквы. Если имя состоит из нескольких слов, то каждое последующее слово в имени начинается с большой буквы.

    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
    ;