equality_expression: relational_expression
equality_expression EQ_0P relational_expression equality_expression NE_0P relational_expression
and_expression:
equality_expression
and_expression AMPERSAND equality_expression // зарезервировано
exclusi ve_or_expressi on: and_expression
exclusive_or_expression CARET and_expression // зарезервировано
i nclusi ve_or_expressi on: exclusive_or_expression
inclusive_or_expression VERTICAL_BAR exclusive_or_expression
// зарезервировано
logical_and_expression:
i nclusi ve_or_expressi on
logical_and_expression AND_0P inclusive_or_expression
logical_xor_expression:
1ogi ca1_a nd_exp res s i on
logical_xor_expression X0R_0P logical_and_expression
logical_or_expression:
logical_xor_expression
logical_or_expression 0R_0P logical_xor_expression
conditional_expression: logical_or_expression
logical_or_expression QUESTION expression COLON
condi ti onal_expressi on
as s i gnment_expres si on: condi ti onal_expressi on
unary_expression assignment_operator assignment_expression
assignment_operator:
EQUAL
MUL_ASSIGN
DIV_ASSIGN
MOD_ASSIGN
ADD_ASSIGN
SUB_ASSIGN
LEFT_ASSIGN // зарезервировано
RIGHT_ASSIGN // зарезервировано
AND_ASSIGN // зарезервировано
XOR_ASSIGN // зарезервировано
0R_ASSIGN // зарезервировано
expression:
assignment_expression
expression COMMA assignment_expression
constant_expression: conditional_expression
declaration:
function_prototype SEMICOLON init_declarator_list SEMICOLON
function_prototype:
function_declarator RIGHT_PAREN
function_declarator:
function_header
functi on_header_wi th_pa rameters
function_header_with_parameters:
function_header parameter_declaration function_header_with_parameters COMMA parameter_declaration
function_header:
fully_specified_type IDENTIFIER LEFT_PAREN
parameter_declarator:
type_specifier IDENTIFIER
type_specifier IDENTIFIER LEFT_BRACKET RIGHT_BRACKET
parameter_declaration:
type_qualifier parameter_qualifier parameter_declarator parameter_quali fi er parameter_declarator type_qualifier parameter_qualifier parameter_type_specifier parameter_qualifier parameter_type_specifier
parameter_qualifier:
/* пусто */
IN
OUT
INOUT
parameter_type_speci fi er: type_specifier
type_specifier LEFTJRACKET RIGHT_BRACKET
init_declarator_list:
single_declaration
init_declarator_list COMMA IDENTIFIER init_declarator_l ist COMMA IDENTIFIER LEFTJRACKET RIGHT_BRACKET init_declarator_list COMMA IDENTIFIER LEFTJRACKET constant_expression RIGHTJRACKET initjjeclaratorjist COMMA IDENTIFIER EQUAL initializer
single_declaration: fully_specified_type fully_specified_type IDENTIFIER
f u 11 y_s pec i f i ed_ty pe IDENTIFIER LEFTJRACKET RIGHT JRACKET fully_specified_type IDENTIFIER LEFTJRACKET constant_expression RIGHT JRACKET fully_specified_type IDENTIFIER EQUAL initializer
// 'enum' и 'typedef' не поддерживаются
fully_speci fi ed_type: type_specifier
type_qualifier type_specifier CONST