ГОСТ Р 59791—2021
[Relation: *r] (Familial ?r) (#?r Bob Sue)
(exists ((r Relation)) (and (Familial r) (r Bob Sue)))
Концепция [Relation: *r] утверждает, что существует связь
г.
Следующие два отношения показывают, что г яв
ляется семейной связью и что г существует между Бобом и Сью. В CGIF префикс # указывает на связанную метку
кореферентности, используемую в качестве метки типа.
Б.1.3 Правила синтаксиса EBNF для CGIF
В соответствии с [2] для описания синтаксиса CGIF используется обозначение EBNF. Спецификации в этом
приложении используют только следующее подмножество функций, определенных в [2]. В данном пункте приведен
только в справочных целях, поскольку в качестве нормативного документа следует рассматривать стандарт [2].
Терминальный символ. Любая строка, заключенная в одинарные или двойные кавычки.
Пример
—
“This is a quoted string.” ‘and so is this’
Нетерминальный символ. Имя категории в синтаксическом правиле. Например, следующее синтаксическое
правило содержит два нетерминальных символа: один терминальный символ «;», определяющий символ «=»,
символ объединения «,» и терминальный символ «;».
syntaxRule = expression, «;»;
Возможный вариант.
Выражение, заключенное в квадратные скобки. От него зависит отсутствие или на
личие любой строки, указанной в таком выражении.
Пример
—
[ “This string may or may not occur.”]
Итерация.
Выражение, заключенное в фигурные скобки. От него зависит отсутствие или наличие нескольких
экземпляров любой строки, указанной в таком выражении.
Пример
—
{ “This string may occur many times.”}
Объединение. Два или более терминов, разделенных запятыми.
“Two kinds of quotes: “,“ and “,
Исключение. Два термина, разделенных знаком «-», который указывает на любую строку, обозначенную пер
вым термином, но не вторым. В следующем примере приведена последовательность из нуля или более цифр, не
содержащая «6»:
{digit} - 6
Группа. Выражение, заключенное в круглые скобки и рассматриваемое как один термин. В следующую груп
пу входит исключение, которое определяет последовательность из одной или нескольких цифр, исключая пустой
термин:
({digit} -)
Альтернативные варианты. Два или несколько объединений, разделенных вертикальными полосами.
Пример — “cat”, “dog” \ “cow”, “horse”, “sheep”
|
wildAnimal
Особая последовательность. Любая строка, в начале и конце которой стоят вопросительные знаки. Эти по
следовательности не влияют на синтаксис, указанный в правилах, но могут использоваться для копирования строк,
проанализированных на основании правила, для последующего использования в правилах перезаписи, указанных в
Б.1.3.
Пример
—
?sqn?
Синтаксическое правило. Нетерминальный символ, за которым следует «=», и выражение, в конце которого
стоит символ «;». Следующие синтаксические правила определяют синтаксис правил, используемых в приложе
нии Б.
syntaxRule
expression
= expression,
= alternative, {“|” alternative} | term,term;
alternative = term [variable], {“,” term [variable]};
term = terminal | nonterminal | “[“, expression, “]”
| “{“, expression, “}” | “(“, expression, “)” | empty;
terminal =({character - ’”’} - empty),
|({character - “”’} - empty),
nonterminal = identifer;
variable
identifier
empty
= «?»,identifer, «?»;
= letter, {letter | digit | «_»};
=;
Эти правила определяют подмножество синтаксических правил, определенных в [2] (8.1). В соответствии с
правилами символ «,» имеет более высокий приоритет, чем «|», который, в свою очередь, имеет более высокий
приоритет, чем «=». Круглые скобки можно использовать для обнуления приоритета или объединения в более
очевидные группы.
36