Генератор
Проектов

Проект hello

Проект hello демонстрирует минимальную функциональность генератора.

Для разворачивания проекта необходимо создать в файловой системе корневую директорию для размещения проекта (рекомендуется, чтобы ее имя совпадало с именем проекта), например /home/username/projects/hello, далее без префикса hello.

Далее необходимо создать поддиректорию hello/hello строго с тем же именем, на выполнение этого требования полагается алгоритм генерации.

В проектной директории далее следует создать главный файл проекта hello/hello/hello.gen. Работа генератора с проектом в любом режиме начинается с чтения этого файла. На основе информации из главного файла проекта определяется перечень других файлов для чтения.

В процессе работы генератора будут созданы директрия управления hello/hello-dev, и директория сгенерированных программ hello/hello-proj. Именно для этого и нужна такая многоэтажная конструкция.

Далее будем файлы в проектной директории задавать только по именам, т.е. в нашем случае главный файл проекта hello/hello/hello.gen будем обозначать как hello.gen.

В главном файле должен быть заголовок проекта с перечнем различных опций. После заголовка перечисляются пакеты в составе проекта.

Понятие пакета в генераторе - одно из основополагающих. Пакет обладает уникальным в проекте именем и относится к одному из фиксированного перечня типов. Различных типов пакетов на момент написания этого текста более полусотни. По мере развития генератора это перечень модифицируется. Пакеты могут быть проектные, импортированные из других проектов и системные (поставляемые вместе с генератором).

В нашем примере в главном файле заявлен один проектный пакет utility hello. Тип пакета определяется ключевым словом utility - утилита, т.е. программа, запускаемая из консоли (без оконного интерфейса). Имя пакета - hello, совпадение имени пакета с именем проекта допустимо. Декларация этого пакета предполагает, что в проектной директории должен быть файл hello.utl.

Файл описания утилиты содержит заголовок и раздел main с текстом программы, которая выполняется при запуске утилиты. В нашем случае программа состоит из единственного оператора dprint - печать сообщения в консоли.

Перечень файлов проекта

gen.bat,gen.bsh - командный файл для первой генерации проекта.

hello.gen - главный файл с описанием компонент проекта. description.txt - описание.

hello.utl - утилита.

Файл hello.gen:

project hello
  /version="01.001"

utility world

Файл world.utility:

utility world:"world"

main
{ dprint("Hello world!");
}
Скачать проект hello