Перейти к статье

 

Дополнительный функционал APREPRO

Дополнительный функционал APREPRO включает следующее:

1. Подключение файлов

APREPRO может считывать входные данные из нескольких файлов с использованием include() and cinclude() функций. Если задать команду вида:

{include(" filename")}

{include(string_variable)}

APREPRO откроет и начнет чтение из файла Имя_файла. Переменная строка может быть использован в качестве аргумента вместо буквального значения строки. Когда конец Файл будет достигнуто, то она будет закрыта и APREPRO будет продолжать чтение от предыдущего файл. Разница между include и cinclude состоит в том, что, если Имя_файла не существует, include прекратит работу APREPRO с критической ошибкой, в то время как cinclude просто отобразит предупреждающее сообщение и продолжит работу с текущим файлом. Функцию cinclude можно рассматривать как условный include, то есть подключать файл, если он существует. Множественное подключение файлов позволяет подключать файлы, содержащиеся внутри подключаемых файлов. Может быть использовано около 16 уровней подключения Эта опция может быть использована для того чтобы задать глобальные переменные для нескольких файлов. Например, если два или более присоединяемых файла имеют общие точки или размеры, эти параметры могут быть заданы в одном файле и применяться для других файлов.

2. Условия

Части подключенного файла можно обрабатывать посредством использования команд-условий {Ifdef(variable)} или  Ifndef(variable)} следующего синтаксиса:

#{Ifdef(variable)}

...Строки обрабатываются 'variable' если не равно 0

#{Else}

...Строки обрабатываются 'variable' если равно 0 или неопределено

#{Endif}

Оператор {Else} опционален. Следует учесть, что если variable неопределен, то его значение приравнивается нулю. Команды Ifdef могут применяться ко вложенным файлам вплоть до 16 уровня. Если обаружено некорректное вложение файла, то будет отображено предупреждение.  Ifdef(variable)}, {Ifndef(variable)}, {Else}, и {Endif} обрабатывают текст только в пределах строки. Текст следующий за данными командами на той же строке игнорируется.

3. Циклы

Повторяющиеся процессы для группы строчек может управляться с помощью команды {loop( control)}, {endloop} следующего синтаксиса:

{loop(variable)}

...Обрабатывать данные строки 'variable' количество раз

{endloop}

Циклы могут применяться ко вложенным файлам. Численная переменная или константа должна быть указана в качестве спецификатора управляющего контура .В настоящее время не могут быть использовать алгебраические выражения, такие как {loop(3+5)}.

Цикл может быть прерван до запуска заданного количество раз, используя оператор  #{Break}. Как только встречается оператор #{Break}, происходит выход из цикла и остальные команды в цикле не  выполняются. Дополнительные итерации цикла также не будет выполняться. Например, следующие команды создают 3 параллелепипеда:

#{x=1}
#{Loop(10)}
    brick x 1
    #{If(x==2)}
        #{Break}
    #{EndIf}
    #{x++}
    brick x 1
#{EndLoop}

Когда команда #{Break} выполняется, все, что стоит  в цикле после  #{Break} пропускается, включая #{EndIf}. По этой причине, оператор #{Break} не только выходит за рамки цикла, но и завершает самый последний оператор #{If}, как это делает оператор #{EndIf}. Оператор #{Break} не должен использоваться нигде кроме как в конструкциях с операторами #{If}.