Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
1754 lines (1753 sloc) 43.7 KB
<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf">
<bgf:production>
<nonterminal>TranslationUnit</nonterminal>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>ExternalDeclaration</nonterminal>
</bgf:expression></plus>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>ExternalDeclaration</nonterminal>
<bgf:expression>
<nonterminal>FunctionDefinition</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>ExternalDeclaration</nonterminal>
<bgf:expression>
<nonterminal>Declaration</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>FunctionDefinition</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<star><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Declaration</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Declaration</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Declaration</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>InitDeclarator</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>InitDeclarator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Declaration</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>InitDeclarator</nonterminal>
<bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>InitDeclarator</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Initializer</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>typedef</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>extern</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>static</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>auto</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>register</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>void</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>char</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>short</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>int</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>long</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>float</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>double</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>signed</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>unsigned</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>const</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<terminal>volatile</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>struct</terminal>
</bgf:expression>
<bgf:expression>
<terminal>union</terminal>
</bgf:expression>
</choice>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<plus><bgf:expression>
<nonterminal>StructDeclaration</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>struct</terminal>
</bgf:expression>
<bgf:expression>
<terminal>union</terminal>
</bgf:expression>
</choice>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<plus><bgf:expression>
<nonterminal>StructDeclaration</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>struct</terminal>
</bgf:expression>
<bgf:expression>
<terminal>union</terminal>
</bgf:expression>
</choice>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>enum</terminal>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Enumerator</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>Enumerator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>enum</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Enumerator</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>Enumerator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>enum</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>StructDeclaration</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>StructDeclarator</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>StructDeclarator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>StructDeclarator</nonterminal>
<bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>StructDeclarator</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>:</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>StructDeclarator</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>:</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Enumerator</nonterminal>
<bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Enumerator</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Pointer</nonterminal>
<bgf:expression>
<plus><bgf:expression>
<sequence>
<bgf:expression>
<terminal>*</terminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression></plus>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Parameters</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Parameter</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>Parameter</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>MoreParameters</nonterminal>
</bgf:expression></optional>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>MoreParameters</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression> <bgf:expression>
<terminal>...</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Parameter</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<nonterminal>Declarator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Parameter</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<nonterminal>AbstractDeclarator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>TypeName</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<plus><bgf:expression>
<nonterminal>Specifier</nonterminal>
</bgf:expression></plus>
</bgf:expression> <bgf:expression>
<nonterminal>AbstractDeclarator</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Initializer</nonterminal>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Initializer</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Initializer</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>Initializer</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<terminal>,</terminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Pointer</nonterminal>
</bgf:expression> <bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<nonterminal>I</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>[</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>]</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Parameters</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Parameters</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>D</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>D</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>[</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>]</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>__builtin_va_arg</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>,</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>TypeName</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>LineDirective</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>#</terminal>
</bgf:expression> <bgf:expression>
<selectable>
<selector>linenum</selector>
<bgf:expression>
<nonterminal>IntegerConstant</nonterminal>
</bgf:expression>
</selectable>
</bgf:expression> <bgf:expression>
<selectable>
<selector>filename</selector>
<bgf:expression>
<nonterminal>StringConstant</nonterminal>
</bgf:expression>
</selectable>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Flag</nonterminal>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Flag</nonterminal>
<bgf:expression>
<terminal>1</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Flag</nonterminal>
<bgf:expression>
<terminal>2</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Flag</nonterminal>
<bgf:expression>
<terminal>3</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Flag</nonterminal>
<bgf:expression>
<terminal>4</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>ExternalDeclaration</nonterminal>
<bgf:expression>
<nonterminal>LineDirective</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<nonterminal>LineDirective</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>StructDeclarator</nonterminal>
<bgf:expression>
<nonterminal>LineDirective</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>va_arg</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>,</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>TypeName</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>HexadecimalConstant</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>IntegerConstant</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>CharacterConstant</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>FloatingPointConstant</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<nonterminal>StringConstant</nonterminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>sizeof</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>TypeName</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>[</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>]</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
<bgf:expression>
<star><bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression></star>
</bgf:expression>
</sequence>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>.</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>-&gt;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>++</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>--</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>++</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>--</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>&amp;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>*</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>+</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>-</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>~</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>!</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>sizeof</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>TypeName</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>*</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>/</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>%</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>+</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>-</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&lt;&lt;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&gt;&gt;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&lt;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&gt;</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&lt;=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&gt;=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>==</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>!=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>*=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>/=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>%=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>+=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>-=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&lt;&lt;=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&gt;&gt;=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>&amp;=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>^=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Expression</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>|=</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Specifier</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<choice>
<bgf:expression>
<terminal>struct</terminal>
</bgf:expression>
<bgf:expression>
<terminal>union</terminal>
</bgf:expression>
</choice>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>{</terminal>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Declaration</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<star><bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression></star>
</bgf:expression> <bgf:expression>
<terminal>}</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>:</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>case</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>:</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>default</terminal>
</bgf:expression> <bgf:expression>
<terminal>:</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>if</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>if</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>else</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>switch</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>while</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>do</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>while</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>for</terminal>
</bgf:expression> <bgf:expression>
<terminal>(</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression> <bgf:expression>
<optional><bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression></optional>
</bgf:expression> <bgf:expression>
<terminal>)</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Statement</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>goto</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Identifier</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>continue</terminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>break</terminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>return</terminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
<bgf:production>
<nonterminal>Statement</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>return</terminal>
</bgf:expression> <bgf:expression>
<nonterminal>Expression</nonterminal>
</bgf:expression> <bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</bgf:grammar>