Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
1 lines (1 sloc) 40.9 KB
<ns0:grammar xmlns:ns0="http://planet-sl.org/bgf"><root>program</root><ns0:production><nonterminal>C_compilation_unit</nonterminal><ns0:expression><star><ns0:expression><nonterminal>declaration_or_function_definition</nonterminal></ns0:expression></star></ns0:expression></ns0:production><ns0:production><nonterminal>constant</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>number</nonterminal></ns0:expression><ns0:expression><nonterminal>float</nonterminal></ns0:expression><ns0:expression><nonterminal>hex</nonterminal></ns0:expression><ns0:expression><nonterminal>long</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>SP</nonterminal></ns0:expression><ns0:expression><nonterminal>dotfloat</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>charlit</nonterminal></ns0:expression><ns0:expression><nonterminal>string</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>string</nonterminal><ns0:expression><plus><ns0:expression><nonterminal>stringlit</nonterminal></ns0:expression></plus></ns0:expression></ns0:production><ns0:production><nonterminal>expression</nonterminal><ns0:expression><plus><ns0:expression><nonterminal>assignment_expression</nonterminal></ns0:expression></plus></ns0:expression></ns0:production><ns0:production><nonterminal>constant_expression</nonterminal><ns0:expression><nonterminal>conditional_expression</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>assignment_expression</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>conditional_expression</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>assignment_operation</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>assignment_operation</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>assignment_operator</nonterminal></ns0:expression><ns0:expression><nonterminal>assignment_expression</nonterminal></ns0:expression></sequence></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>&gt;&gt;=</terminal></ns0:expression><ns0:expression><terminal>&lt;&lt;=</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>conditional_expression</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>binary_expression</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>conditional_operation</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>conditional_operation</nonterminal><ns0:expression><sequence><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></ns0:production><ns0:production><nonterminal>binary_expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>unary_expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>binary_expression</nonterminal></ns0:expression><ns0:expression><nonterminal>binary_operator</nonterminal></ns0:expression><ns0:expression><nonterminal>unary_expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>binary_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>!=</terminal></ns0:expression><ns0:expression><terminal>&lt;</terminal></ns0:expression><ns0:expression><terminal>&gt;</terminal></ns0:expression><ns0:expression><terminal>&lt;=</terminal></ns0:expression><ns0:expression><terminal>&gt;=</terminal></ns0:expression><ns0:expression><terminal>||</terminal></ns0:expression><ns0:expression><terminal>&amp;&amp;</terminal></ns0:expression><ns0:expression><terminal>|</terminal></ns0:expression><ns0:expression><terminal>^</terminal></ns0:expression><ns0:expression><terminal>&amp;</terminal></ns0:expression><ns0:expression><terminal>&lt;&lt;</terminal></ns0:expression><ns0:expression><terminal>&gt;&gt;</terminal></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><nonterminal>unary_operator</nonterminal></ns0:expression><ns0:expression><nonterminal>SPOFF</nonterminal></ns0:expression><ns0:expression><nonterminal>unary_expression</nonterminal></ns0:expression><ns0:expression><nonterminal>SPON</nonterminal></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><nonterminal>unary_expression</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>sizeof_expression</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>sizeof_expression</nonterminal><ns0:expression><choice><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><ns0:expression><sequence><ns0:expression><terminal>sizeof</terminal></ns0:expression><ns0:expression><nonterminal>unary_expression</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>unary_operator</nonterminal><ns0:expression><choice><ns0:expression><terminal>*</terminal></ns0:expression><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><ns0:expression><terminal>--</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>postfix_expression</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>reference</nonterminal></ns0:expression><ns0:expression><nonterminal>nonreference</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>reference</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>reference_id</nonterminal></ns0:expression><ns0:expression><nonterminal>reference_expression</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>reference_id</nonterminal><ns0:expression><nonterminal>id</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>reference_expression</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>unannotated_reference_base</nonterminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>postfix_extension</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>unannotated_reference_base</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>reference_id</nonterminal></ns0:expression><ns0:expression><nonterminal>nonreferential_primary</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>nonreference</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>nonreferential_primary</nonterminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>postfix_extension</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>nonreferential_primary</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>constant</nonterminal></ns0:expression><ns0:expression><nonterminal>string</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>postfix_extension</nonterminal><ns0:expression><choice><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><ns0:expression><sequence><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></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>.</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>-&gt;</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><terminal>++</terminal></ns0:expression><ns0:expression><terminal>--</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declaration</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>declaration_body</nonterminal></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>preprocessor</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declaration_body</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>decl_specifiers</nonterminal></ns0:expression><ns0:expression><plus><ns0:expression><nonterminal>init_declarator</nonterminal></ns0:expression></plus></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>enum_specifier</nonterminal></ns0:expression><ns0:expression><nonterminal>struct_or_union_specifier</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>decl_specifiers</nonterminal><ns0:expression><sequence><ns0:expression><star><ns0:expression><nonterminal>decl_qualifier</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type_specifier</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>decl_qualifier</nonterminal></ns0:expression></star></ns0:expression></sequence></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>tagged_reference_id</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>member_declaration</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><nonterminal>EX</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>tagged_reference_id</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>tagged_reference_id</nonterminal><ns0:expression><nonterminal>reference_id</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>member_declaration</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>decl_specifiers</nonterminal></ns0:expression><ns0:expression><plus><ns0:expression><nonterminal>member_declarator</nonterminal></ns0:expression></plus></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>preprocessor</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>member_declarator</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>bitfieldsize</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>bitfieldsize</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>bitfieldsize</nonterminal><ns0:expression><sequence><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><nonterminal>constant_expression</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>decl_qualifier</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>sc_specifier</nonterminal></ns0:expression><ns0:expression><nonterminal>cv_qualifier</nonterminal></ns0:expression><ns0:expression><nonterminal>type_qualifier</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>sc_specifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>auto</terminal></ns0:expression><ns0:expression><terminal>register</terminal></ns0:expression><ns0:expression><terminal>static</terminal></ns0:expression><ns0:expression><terminal>extern</terminal></ns0:expression><ns0:expression><terminal>typedef</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type_specifier</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>simple_type_name</nonterminal></ns0:expression><ns0:expression><nonterminal>enum_specifier</nonterminal></ns0:expression><ns0:expression><nonterminal>struct_or_union_specifier</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type_qualifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>long</terminal></ns0:expression><ns0:expression><terminal>short</terminal></ns0:expression><ns0:expression><terminal>signed</terminal></ns0:expression><ns0:expression><terminal>unsigned</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>simple_type_name</nonterminal><ns0:expression><choice><ns0:expression><terminal>char</terminal></ns0:expression><ns0:expression><terminal>int</terminal></ns0:expression><ns0:expression><terminal>void</terminal></ns0:expression><ns0:expression><terminal>float</terminal></ns0:expression><ns0:expression><terminal>double</terminal></ns0:expression><ns0:expression><nonterminal>type_id</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type_id</nonterminal><ns0:expression><nonterminal>reference_id</nonterminal></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>enum_specifier</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>tagged_reference_id</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><sepliststar><ns0:expression><nonterminal>enumerator</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression></sepliststar></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>enum</terminal></ns0:expression><ns0:expression><nonterminal>tagged_reference_id</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>enumerator</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>reference_id</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>enumerator_value</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>enumerator_value</nonterminal><ns0:expression><sequence><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>constant_expression</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>init_declarator</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>initialization</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>declarator</nonterminal><ns0:expression><sequence><ns0:expression><star><ns0:expression><nonterminal>ptr_operator</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><nonterminal>base_declarator</nonterminal></ns0:expression><ns0:expression><nonterminal>SPON</nonterminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>declarator_extension</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>base_declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>reference_id</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></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declarator_extension</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>function_declarator_extension</nonterminal></ns0:expression><ns0:expression><nonterminal>array_declarator_extension</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>function_declarator_extension</nonterminal><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>argument_declaration_list</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>cv_qualifier</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>array_declarator_extension</nonterminal><ns0:expression><sequence><ns0:expression><terminal>[</terminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>constant_expression</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><terminal>]</terminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>ptr_operator</nonterminal><ns0:expression><sequence><ns0:expression><terminal>*</terminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>cv_qualifier</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><nonterminal>SPOFF</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>cv_qualifier</nonterminal><ns0:expression><choice><ns0:expression><terminal>const</terminal></ns0:expression><ns0:expression><terminal>volatile</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>type_name</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>type_specifiers</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>type_specifiers</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><plus><ns0:expression><nonterminal>type_qualifier</nonterminal></ns0:expression></plus></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>type_specifier</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>type_qualifier</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>type_specifier</nonterminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>type_qualifier</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>abstract_declarator</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><plus><ns0:expression><nonterminal>ptr_operator</nonterminal></ns0:expression></plus></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>declarator_extension</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><nonterminal>abstract_declarator</nonterminal></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>declarator_extension</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>argument_declaration_list</nonterminal><ns0:expression><sepliststar><ns0:expression><nonterminal>argument_declaration</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression></sepliststar></ns0:expression></ns0:production><ns0:production><nonterminal>argument_declaration</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>decl_specifiers</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>argument_declarator</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression><ns0:expression><terminal>...</terminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>argument_declarator</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><nonterminal>abstract_declarator</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>initialization</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>=</terminal></ns0:expression><ns0:expression><nonterminal>initializer</nonterminal></ns0:expression></sequence></ns0:expression><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></choice></ns0:expression></ns0:production><ns0:production><nonterminal>initializer</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><sepliststar><ns0:expression><nonterminal>initializer</nonterminal></ns0:expression><ns0:expression><terminal>,</terminal></ns0:expression></sepliststar></ns0:expression><ns0:expression><optional><ns0:expression><terminal>,</terminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>EX</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><star><ns0:expression><nonterminal>label</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><nonterminal>unlabeled_statement</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>preprocessor</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>label</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><nonterminal>label_id</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>EX</nonterminal></ns0:expression><ns0:expression><nonterminal>SP</nonterminal></ns0:expression><ns0:expression><nonterminal>SP</nonterminal></ns0:expression><ns0:expression><terminal>case</terminal></ns0:expression><ns0:expression><nonterminal>constant_expression</nonterminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>EX</nonterminal></ns0:expression><ns0:expression><nonterminal>SP</nonterminal></ns0:expression><ns0:expression><nonterminal>SP</nonterminal></ns0:expression><ns0:expression><terminal>default</terminal></ns0:expression><ns0:expression><terminal>:</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>label_id</nonterminal><ns0:expression><nonterminal>id</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>unlabeled_statement</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>expression_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>if_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>for_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>while_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>switch_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>do_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>null_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>jump_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>compound_statement</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>null_statement</nonterminal><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>compound_statement</nonterminal><ns0:expression><sequence><ns0:expression><terminal>{</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><nonterminal>compound_statement_body</nonterminal></ns0:expression><ns0:expression><terminal>}</terminal></ns0:expression><ns0:expression><optional><ns0:expression><terminal>;</terminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>compound_statement_body</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><star><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></star></ns0:expression><ns0:expression><nonterminal>EX</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression><ns0:expression><nonterminal>compound_statement_body</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>expression_statement</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>if_statement</nonterminal><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><optional><ns0:expression><nonterminal>else_statement</nonterminal></ns0:expression></optional></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>switch_statement</nonterminal><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></ns0:production><ns0:production><nonterminal>else_statement</nonterminal><ns0:expression><sequence><ns0:expression><terminal>else</terminal></ns0:expression><ns0:expression><nonterminal>statement</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>while_statement</nonterminal><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:production><ns0:production><nonterminal>do_statement</nonterminal><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><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>for_statement</nonterminal><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:production><ns0:production><nonterminal>jump_statement</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>goto</terminal></ns0:expression><ns0:expression><nonterminal>label_id</nonterminal></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>continue</terminal></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>break</terminal></ns0:expression><ns0:expression><nonterminal>semi</nonterminal></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><nonterminal>semi</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>declaration_or_function_definition</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression><ns0:expression><nonterminal>function_definition</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>function_definition</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><nonterminal>decl_specifiers</nonterminal></ns0:expression><ns0:expression><nonterminal>declarator</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>KR_parameter_decls</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>compound_statement</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>KR_parameter_decls</nonterminal><ns0:expression><sequence><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><nonterminal>IN</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><plus><ns0:expression><nonterminal>declaration</nonterminal></ns0:expression></plus></ns0:expression><ns0:expression><nonterminal>EX</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>semi</nonterminal><ns0:expression><sequence><ns0:expression><terminal>;</terminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>program</nonterminal><ns0:expression><nonterminal>C_compilation_unit</nonterminal></ns0:expression></ns0:production><ns0:production><nonterminal>preprocessor</nonterminal><ns0:expression><choice><ns0:expression><sequence><ns0:expression><terminal>#define</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><terminal>(</terminal></ns0:expression><ns0:expression><plus><ns0:expression><nonterminal>id</nonterminal></ns0:expression></plus></ns0:expression><ns0:expression><terminal>)</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#define</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>EX</nonterminal></ns0:expression><ns0:expression><terminal>#else</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>EX</nonterminal></ns0:expression><ns0:expression><terminal>#endif</terminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><terminal>#if</terminal></ns0:expression><ns0:expression><nonterminal>expression</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><terminal>#ifdef</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>NL</nonterminal></ns0:expression><ns0:expression><terminal>#ifndef</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><sequence><ns0:expression><nonterminal>IN</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#ident</terminal></ns0:expression><ns0:expression><nonterminal>stringlit</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#include</terminal></ns0:expression><ns0:expression><nonterminal>stringlit</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#include</terminal></ns0:expression><ns0:expression><terminal>&lt;</terminal></ns0:expression><ns0:expression><nonterminal>SPOFF</nonterminal></ns0:expression><ns0:expression><nonterminal>filepath</nonterminal></ns0:expression><ns0:expression><terminal>&gt;</terminal></ns0:expression><ns0:expression><nonterminal>SPON</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#line</terminal></ns0:expression><ns0:expression><nonterminal>integernumber</nonterminal></ns0:expression><ns0:expression><optional><ns0:expression><nonterminal>stringlit</nonterminal></ns0:expression></optional></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#undef</terminal></ns0:expression><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression><ns0:expression><sequence><ns0:expression><terminal>#LINK</terminal></ns0:expression><ns0:expression><nonterminal>stringlit</nonterminal></ns0:expression><ns0:expression><nonterminal>NL</nonterminal></ns0:expression></sequence></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>filepath</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>file_id</nonterminal></ns0:expression><ns0:expression><star><ns0:expression><nonterminal>slash_fileid</nonterminal></ns0:expression></star></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>file_id</nonterminal><ns0:expression><choice><ns0:expression><nonterminal>id</nonterminal></ns0:expression><ns0:expression><nonterminal>key</nonterminal></ns0:expression></choice></ns0:expression></ns0:production><ns0:production><nonterminal>slash_fileid</nonterminal><ns0:expression><sequence><ns0:expression><nonterminal>slash</nonterminal></ns0:expression><ns0:expression><nonterminal>file_id</nonterminal></ns0:expression></sequence></ns0:expression></ns0:production><ns0:production><nonterminal>slash</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></choice></ns0:expression></ns0:production></ns0:grammar>