I. При описании синтаксиса сообщения и его элементов используются следующие металингвистические конструкции:
::= - метасимвол, означающий "есть по определению";
< > - метасимволы, используемые для выделения элементов металингвистической структуры;
| - метасимвол, означающий возможность выбора среди нескольких вариантов значений элемента металингвистической структуры;
[ ] - метасимволы, означающие необязательность элемента металингвистической структуры;
{ } - метасимволы, означающие использование металингвистической структуры один и более раз.
II. При описании синтаксиса сообщения используются следующие основные понятия.
<слово> ::= <число> | <дата> | <текст> | <код >| <специальное слово> | | ||
<пустое выражение> | ||
<словосочетание> ::= <слово1> , <слово1> | <слово1> , < словосочетание> | ||
<слово1> ::= <число> | <дата> | <текст1> | <текст2> | <код > |
Текст (<текст>) представляет собой непустую последовательность символов, в качестве которых используются прописные (заглавные) русские и латинские буквы, цифры, а также любые другие символы таблицы ASCII за исключением символов "возврат каретки" и "перевод строки" (коды ASCII соответственно 13 и 10). Первый символ текста должен быть отличен от пробела. В том случае, когда текстовое значение встречается в составе словосочетания, возможны дополнительные ограничения на вид текста. Для выделения этих возможностей используются обозначения <текст1>, <текст2>.
Число состоит только из цифр (в том числе и с лидирующими нулями), причем может включать десятичную точку и знак "-" (минус) для отрицательных чисел.
Дата представляется в виде <день>.<месяц>.<год>, где <день> - две цифры, соответствующие дню месяца, <месяц> - две цифры, соответствующие порядковому номеру месяца в году, <год> - четыре цифры года.
Код определяется как слово (последовательность любых символов, включая пробелы и знаки препинания), встречающееся в некотором множестве слов. Как правило, такое множество задается в виде таблицы. В частности, код может быть задан путем указания графы определенного справочника - в таком случае код должен совпадать с каким-либо значением из этой графы. Сравнение кода со словами из соответствующего множества выполняется без учета регистра.
<русская буква> - прописная русская буква
<латинская буква> - прописная латинская буква
<ц> - цифра
<пробел> - символ пробела
<другой символ> - символ, имеющий код ASCII, отличный от 13 и 10, и не являющийся ни цифрой, ни буквой, ни пробелом
<пустое выражение> - выражение, не содержащее ни одного символа
<буква> ::= <русская буква> | <латинская буква> | ||
<символ> ::= <буква> | <ц> | <пробел> | <другой символ> | ||
<текст> ::= (<буква> | <ц> | <другой символ>) [{<символ>}]| | ||
<текст1> ::= ( (<буква>|<ц>) [{<буква>|<ц>|<пробел>| - | / }] ) | | ||
<пустое выражение> | ||
<текст2> ::= ( < буква> [{<буква>|<пробел>| - }] ) | | ||
<пустое выражение> | ||
<число> ::= [-]{<ц>}[.{<ц>}] | [-].{<ц>} | ||
<дата> ::= <день>.<месяц>.<год> | ||
<год> ::= <ц><ц><ц><ц> | ||
<месяц> ::= 01|02|03|04|05|06|07|08|09|10|11|12 | ||
<день> ::= <ц><ц>, принимает значения от 01 до 28, 29, 30 или 31 - в зависимости от значений <месяц> и <год>; | ||
<часы> ::= <ц><ц> - принимают значения от 00 до23; | ||
<минуты> ::= <ц><ц> - принимают значения от 00 до 59; | ||
<секунды> ::= <ц><ц> - принимают значения от 00 до 59; |
III. При описании синтаксиса сообщения используются следующие некоторые специальные виды слов, используемых в качестве значений реквизитов.
<специальное слово> ::= <идентификатор файла> | | |||||
<идентификатор отправителя> | | |||||
<идентификатор документа> | | |||||
<ИННЮЛ> | <КПП> | <ИННИП> | <ОГРН> | |||||
<идентификатор файла> ::= <идентификатор отправителя> <год> <месяц> | |||||
<день> <часы> <минуты> <секунды> | |||||
<идентификатор документа> ::= <идентификатор отправителя> <год> | |||||
<номер документа> | |||||
<номер документа> ::= <8ц> | |||||
<идентификатор отправителя> ::= <идентификатор отправителя ЮЛ> | | |||||
<идентификатор отправителя ИП> | | |||||
<идентификатор отправителя ИФНС> | |||||
<идентификатор отправителя ЮЛ> :: = <ИННЮЛ> <2*> <КПП> | | |||||
<идентификатор отправителя ИП> :: = <ИННИП><9*> | |||||
<идентификатор отправителя ИМНС> :: = <4ц><17*> | |||||
<ИННЮЛ> ::= <10ц> | |||||
<КПП> ::= <9ц> | |||||
<ИННИП> ::= <12ц> | |||||
<ОГРН> ::= <13ц> |
<2*>, <9*>, <17*> и т.п. - последовательности из соответствующего числа подряд идущих символов *, например <2*> ::= **.