EBNF и грамматика C
От: FrozenHeart  
Дата: 11.02.14 18:18
Оценка:
Здравствуйте.

Я не могу никак понять то ли EBNF, то ли конкретно данную грамматику.

Предположим, мы хотим узнать, из каких компонентов состоит declaration в C. Видим:

declaration
: declaration_specifiers ';'
| declaration_specifiers init_declarator_list ';'
;

declaration_specifiers
: storage_class_specifier
| storage_class_specifier declaration_specifiers
| type_specifier
| type_specifier declaration_specifiers
| type_qualifier
| type_qualifier declaration_specifiers
;

type_specifier
: VOID
| CHAR
| SHORT
| INT
| LONG
| FLOAT
| DOUBLE
| SIGNED
| UNSIGNED
| struct_or_union_specifier
| enum_specifier
| TYPE_NAME
;


Если я правильно понял, то, согласно такому описанию, конструкции наподобие

void;


также являются declarations, хотя по факту данная конструкция является невалидной по стандартам C. В чём проблема? Где я что-то не понял? Подскажите, пожалуйста.
avalon/1.0.433
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.