Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ ADC _ Некоторые недочеты синтаксиса команд ADC

Автор: Setuper 25.2.2012, 15:31

Рассмотрим повнимательнее синтаксис команды ADC в части определения параметров:

Код
message_body ::= (b_message_header | cih_message_header | de_message_header | f_message_header | u_message_header | message_header) (separator positional_parameter)* (separator named_parameter)*

positional_parameter ::= parameter_value

named_parameter ::= parameter_name parameter_value?



Ведь на лицо явная избыточность. Логичнее было бы написать так:
Код
message_body ::= (b_message_header | cih_message_header | de_message_header | f_message_header | u_message_header | message_header) (separator parameter)*

parameter ::= parameter_name? parameter_value



Правда, возможно авторы протокола указали явную последовательность следования, а именно то, что все именованные параметры должны находиться в конце. Но ведь в такой интерпретации именованный параметр - это ни что иное как подмножество позиционных параметров. То есть фактически трудно определить к какой группе параметров отнести тот или иной параметр.


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

Считаю это недостатком протокола!