Синтаксис

Программа на pgoblin состоит из блоков. Перед первым блоком программы на pgoblin могут быть строчки комментариев, если они синтаксически отличаются от программы.

Каждый блок состоит из целого числа строк.

Начало или конец файла внутри блока быть не может. Начало и конец строки может быть помещено в блок.

Признаком начала блока служит последовательность символов, которая далее будет называться признак. Эта последовательность распознается как признак только в начале строки. Строка, которая начинается с признака, называется командной строкой, остальные строки блока, если есть, называются литералом.

Последний конец строки перед следующим блоком не является частью литерала.

Если командная строка состоит из признака, за которым следует пробел, то соответствующая команда является пустой.

Если непосредственно перед последовательностью пустых команд стоит команда, которая потребляет Pq регистром управления, и использован 0й регистр управления, то литералы таких пустых команд используются предшествующей командой. Во всех остальных случаях литералы пустых команд по сути являются комментариями.

Командная строка содержит

признак
обязательно
команда
возможно, пустая, как особый случай команды
пробелы
Может отсутствовать вместе со всем остальным до конца строки, пробелы могут быть представлены любым количеством разных пробельных символов
Параметры
до 6 символов [0-9a-zA-Z_], имена участвующих в команде регистров. Если регистр не указан, то используется регистр по умолчанию - 0.
комментарии
если не все 6 регистров указаны явно, то должны отделяться от регистров каким либо из пробельных символов. Для совместимости с будущими версиями не стоит злоупотреблять комментариями без пробелов после регистров. Если регистры команде не указаны, то комментарий можно начинать с символов #, - или ;
конец строки
обязательно

Литерал может быть у любой команды, даже если он ей не нужен. Такой аргумент по сути является комментарием. Если внутри текстового аргумента надо иметь строку, начинающуюся с признака, то к ней в начало строки нужно добавить еще один признак. Уровень вложенности литералов неограничен, на каждом уровне прибавляется по одному признаку в начало строки.

В текущей версии признак не может быть иным, кроме одного символа #. В будущих версиях этот символ будет признаком по умолчанию.

Пример правильной программы на pgoblin, в которой нет ни одного полезного оператора:

#!/bin/sh

exec /usr/local/bin/pgoblin -v $0

Вызов из шелла может быть и таким

#!/usr/local/bin/pgoblin в этом месте эта строчка ни к чему
# просто комментарий
и опять    
COPY t FROM stdin это тоже не исполняется
#
#
#
       


А.А.Бабайлов (C)2003..2022