Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
1 lines (1 sloc) 46.4 KB
<ns0:grammar xmlns:ns0="http://planet-sl.org/bgf"><root>translation-unit</root><ns0:production><nonterminal>translation-unit</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>external-declaration</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>translation-unit</nonterminal></ns0:expression><ns0:expression><nonterminal>external-declaration</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>external-declaration</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>function-definition</nonterminal></ns0:expression><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>function-definition</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>declaration-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>compound-statement</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>declaration-specifiers</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>storage-class-specifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>type-specifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>type-qualifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>function-specifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>storage-class-specifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>typedef</terminal></ns0:expression><ns0:expression><terminal>extern</terminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><terminal>auto</terminal></ns0:expression><ns0:expression><terminal>register</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type-specifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>void</terminal></ns0:expression><ns0:expression><terminal>char</terminal></ns0:expression><ns0:expression><terminal>short</terminal></ns0:expression><ns0:expression><terminal>int</terminal></ns0:expression><ns0:expression><terminal>long</terminal></ns0:expression><ns0:expression><terminal>float</terminal></ns0:expression><ns0:expression><terminal>double</terminal></ns0:expression><ns0:expression><terminal>signed</terminal></ns0:expression><ns0:expression><terminal>unsigned</terminal></ns0:expression><ns0:expression><terminal>_Bool</terminal></ns0:expression><ns0:expression><terminal>_Complex</terminal></ns0:expression><ns0:expression><nonterminal>struct-or-union-specifier</nonterminal></ns0:expression><ns0:expression><nonterminal>enum-specifier</nonterminal></ns0:expression><ns0:expression><nonterminal>typedef-name</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-or-union-specifier</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>struct-or-union</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>struct-declaration-list</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>struct-or-union</nonterminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-or-union</nonterminal><ns0:expression><choice><ns0:expression><terminal>struct</terminal></ns0:expression><ns0:expression><terminal>union</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-declaration-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>struct-declaration</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>struct-declaration-list</nonterminal></ns0:expression><ns0:expression><nonterminal>struct-declaration</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-declaration</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>specifier-qualifier-list</nonterminal></ns0:expression><ns0:expression><nonterminal>struct-declarator-list</nonterminal></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>specifier-qualifier-list</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>type-specifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>specifier-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>type-qualifier</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>specifier-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type-qualifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>const</terminal></ns0:expression><ns0:expression><terminal>restrict</terminal></ns0:expression><ns0:expression><terminal>volatile</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-declarator-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>struct-declarator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>struct-declarator-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>struct-declarator</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>struct-declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>constant-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declarator</nonterminal><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>pointer</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>pointer</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>pointer</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type-qualifier-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>type-qualifier</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression><ns0:expression><nonterminal>type-qualifier</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>direct-declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>parameter-type-list</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>direct-declarator</nonterminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>identifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>assignment-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>conditional-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>unary-expression</nonterminal></ns0:expression><ns0:expression><nonterminal>assignment-operator</nonterminal></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>conditional-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>logical-OR-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>logical-OR-expression</nonterminal></ns0:expression><ns0:expression><terminal>?</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>conditional-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>logical-OR-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>logical-AND-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>logical-OR-expression</nonterminal></ns0:expression><ns0:expression><terminal>||</terminal></ns0:expression><ns0:expression><nonterminal>logical-AND-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>logical-AND-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>inclusive-OR-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>logical-AND-expression</nonterminal></ns0:expression><ns0:expression><terminal>&amp;&amp;</terminal></ns0:expression><ns0:expression><nonterminal>inclusive-OR-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>inclusive-OR-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>exclusive-OR-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>inclusive-OR-expression</nonterminal></ns0:expression><ns0:expression><terminal>|</terminal></ns0:expression><ns0:expression><nonterminal>exclusive-OR-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>exclusive-OR-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>AND-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>exclusive-OR-expression</nonterminal></ns0:expression><ns0:expression><terminal>^</terminal></ns0:expression><ns0:expression><nonterminal>AND-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>AND-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>equality-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>AND-expression</nonterminal></ns0:expression><ns0:expression><terminal>&amp;</terminal></ns0:expression><ns0:expression><nonterminal>equality-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>equality-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>equality-expression</nonterminal></ns0:expression><ns0:expression><terminal>==</terminal></ns0:expression><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>equality-expression</nonterminal></ns0:expression><ns0:expression><terminal>!=</terminal></ns0:expression><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>relational-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression><ns0:expression><terminal>&lt;</terminal></ns0:expression><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression><ns0:expression><terminal>&gt;</terminal></ns0:expression><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression><ns0:expression><terminal>&lt;=</terminal></ns0:expression><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>relational-expression</nonterminal></ns0:expression><ns0:expression><terminal>&gt;=</terminal></ns0:expression><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>shift-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>additive-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression><ns0:expression><terminal>&lt;&lt;</terminal></ns0:expression><ns0:expression><nonterminal>additive-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>shift-expression</nonterminal></ns0:expression><ns0:expression><terminal>&gt;&gt;</terminal></ns0:expression><ns0:expression><nonterminal>additive-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>additive-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>additive-expression</nonterminal></ns0:expression><ns0:expression><terminal>+</terminal></ns0:expression><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>additive-expression</nonterminal></ns0:expression><ns0:expression><terminal>-</terminal></ns0:expression><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>multiplicative-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression><ns0:expression><terminal>/</terminal></ns0:expression><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>multiplicative-expression</nonterminal></ns0:expression><ns0:expression><terminal>%</terminal></ns0:expression><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>cast-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>unary-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>type-name</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>unary-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>++</terminal></ns0:expression><ns0:expression><nonterminal>unary-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>--</terminal></ns0:expression><ns0:expression><nonterminal>unary-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>unary-operator</nonterminal></ns0:expression><ns0:expression><nonterminal>cast-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>sizeof</terminal></ns0:expression><ns0:expression><nonterminal>unary-expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>sizeof</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>type-name</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>postfix-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>primary-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>argument-expression-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>.</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>-&gt;</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>++</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>postfix-expression</nonterminal></ns0:expression><ns0:expression><terminal>--</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>type-name</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>initializer-list</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>type-name</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>initializer-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>primary-expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression><ns0:expression><nonterminal>constant</nonterminal></ns0:expression><ns0:expression><nonterminal>string-literal</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>argument-expression-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>argument-expression-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type-name</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>specifier-qualifier-list</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>abstract-declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>pointer</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>pointer</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>direct-abstract-declarator</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>abstract-declarator</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><nonterminal>type-qualifier-list</nonterminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>direct-abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>parameter-type-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>parameter-type-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>parameter-list</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>parameter-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><terminal>...</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>parameter-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>parameter-declaration</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>parameter-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>parameter-declaration</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>parameter-declaration</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>abstract-declarator</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>initializer-list</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>designation</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>initializer</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>initializer-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>designation</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>initializer</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>designation</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>designator-list</nonterminal></ns0:expression><ns0:expression><terminal>=</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>designator-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>designator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>designator-list</nonterminal></ns0:expression><ns0:expression><nonterminal>designator</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>designator</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><nonterminal>constant-expression</nonterminal></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>.</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>constant-expression</nonterminal><ns0:expression><nonterminal>conditional-expression</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>initializer</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>assignment-expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>initializer-list</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>initializer-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>unary-operator</nonterminal><ns0:expression><choice><ns0:expression><terminal>&amp;</terminal></ns0:expression><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><terminal>+</terminal></ns0:expression><ns0:expression><terminal>-</terminal></ns0:expression><ns0:expression><terminal>~</terminal></ns0:expression><ns0:expression><terminal>!</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>assignment-operator</nonterminal><ns0:expression><choice><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><terminal>*=</terminal></ns0:expression><ns0:expression><terminal>/=</terminal></ns0:expression><ns0:expression><terminal>%=</terminal></ns0:expression><ns0:expression><terminal>+=</terminal></ns0:expression><ns0:expression><terminal>-=</terminal></ns0:expression><ns0:expression><terminal>&lt;&lt;=</terminal></ns0:expression><ns0:expression><terminal>&gt;&gt;=</terminal></ns0:expression><ns0:expression><terminal>&amp;=</terminal></ns0:expression><ns0:expression><terminal>^=</terminal></ns0:expression><ns0:expression><terminal>|=</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>identifier-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>identifier-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>enum-specifier</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>enumerator-list</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>enumerator-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>enumerator-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>enumerator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>enumerator-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>enumerator</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>enumerator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>enumeration-constant</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>enumeration-constant</nonterminal></ns0:expression><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>constant-expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>typedef-name</nonterminal><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>function-specifier</nonterminal><ns0:expression><terminal>inline</terminal></ns0:expression></ns0:production><ns0:production><nonterminal>declaration-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>declaration-list</nonterminal></ns0:expression><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declaration</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>declaration-specifiers</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>init-declarator-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>init-declarator-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>init-declarator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>init-declarator-list</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression><ns0:expression><nonterminal>init-declarator</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>init-declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>initializer</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>compound-statement</nonterminal><ns0:expression><sequence><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>block-item-list</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>block-item-list</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>block-item</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>block-item-list</nonterminal></ns0:expression><ns0:expression><nonterminal>block-item</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>block-item</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>statement</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>labeled-statement</nonterminal></ns0:expression><ns0:expression><nonterminal>compound-statement</nonterminal></ns0:expression><ns0:expression><nonterminal>expression-statement</nonterminal></ns0:expression><ns0:expression><nonterminal>selection-statement</nonterminal></ns0:expression><ns0:expression><nonterminal>iteration-statement</nonterminal></ns0:expression><ns0:expression><nonterminal>jump-statement</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>labeled-statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>case</terminal></ns0:expression><ns0:expression><nonterminal>constant-expression</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>default</terminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>expression-statement</nonterminal><ns0:expression><sequence><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>selection-statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>if</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>if</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression><ns0:expression><terminal>else</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>switch</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>iteration-statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>while</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>do</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression><ns0:expression><terminal>while</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>for</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>for</terminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>jump-statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>goto</terminal></ns0:expression><ns0:expression><nonterminal>identifier</nonterminal></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>continue</terminal></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>break</terminal></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>return</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>;</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production></ns0:grammar>