Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
6137 lines (6136 sloc) 150 KB
<?xml version="1.0" encoding="UTF-8"?>
<xns1:grammar xmlns:xns1="http://planet-sl.org/bgf">
<xns1:production>
<nonterminal>compilation-unit</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>using-directives</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>global-attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>namespace-member-declarations</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-name</nonterminal>
<xns1:expression>
<nonterminal>namespace-or-type-name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>type-name</nonterminal>
<xns1:expression>
<nonterminal>namespace-or-type-name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-or-type-name</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>namespace-or-type-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>value-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>reference-type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>value-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>struct-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>enum-type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>type-name</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>simple-type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>simple-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>numeric-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>bool</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>numeric-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>integral-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>floating-point-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>decimal</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>integral-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>sbyte</terminal>
</xns1:expression>
<xns1:expression>
<terminal>byte</terminal>
</xns1:expression>
<xns1:expression>
<terminal>short</terminal>
</xns1:expression>
<xns1:expression>
<terminal>ushort</terminal>
</xns1:expression>
<xns1:expression>
<terminal>int</terminal>
</xns1:expression>
<xns1:expression>
<terminal>uint</terminal>
</xns1:expression>
<xns1:expression>
<terminal>long</terminal>
</xns1:expression>
<xns1:expression>
<terminal>ulong</terminal>
</xns1:expression>
<xns1:expression>
<terminal>char</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>floating-point-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>float</terminal>
</xns1:expression>
<xns1:expression>
<terminal>double</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>enum-type</nonterminal>
<xns1:expression>
<nonterminal>type-name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>reference-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>class-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>delegate-type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>type-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>object</terminal>
</xns1:expression>
<xns1:expression>
<terminal>string</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>interface-type</nonterminal>
<xns1:expression>
<nonterminal>type-name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>array-type</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>non-array-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>rank-specifiers</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>non-array-type</nonterminal>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>rank-specifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>rank-specifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>rank-specifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>rank-specifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>rank-specifier</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>dim-separators</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>dim-separators</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>dim-separators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>delegate-type</nonterminal>
<xns1:expression>
<nonterminal>type-name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>variable-reference</nonterminal>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>argument-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>argument</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>argument-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>argument</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>argument</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>ref</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-reference</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>out</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-reference</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>primary-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>array-creation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>primary-no-array-creation-expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>primary-no-array-creation-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>literal</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>simple-name</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>parenthesized-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>member-access</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>invocation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>element-access</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>this-access</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>base-access</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>post-increment-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>post-decrement-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>object-creation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>delegate-creation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>typeof-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>checked-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unchecked-expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>simple-name</nonterminal>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>parenthesized-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>member-access</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>primary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>predefined-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>predefined-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>bool</terminal>
</xns1:expression>
<xns1:expression>
<terminal>byte</terminal>
</xns1:expression>
<xns1:expression>
<terminal>char</terminal>
</xns1:expression>
<xns1:expression>
<terminal>decimal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>double</terminal>
</xns1:expression>
<xns1:expression>
<terminal>float</terminal>
</xns1:expression>
<xns1:expression>
<terminal>int</terminal>
</xns1:expression>
<xns1:expression>
<terminal>long</terminal>
</xns1:expression>
<xns1:expression>
<terminal>object</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sbyte</terminal>
</xns1:expression>
<xns1:expression>
<terminal>short</terminal>
</xns1:expression>
<xns1:expression>
<terminal>string</terminal>
</xns1:expression>
<xns1:expression>
<terminal>uint</terminal>
</xns1:expression>
<xns1:expression>
<terminal>ulong</terminal>
</xns1:expression>
<xns1:expression>
<terminal>ushort</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>invocation-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>primary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>argument-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>element-access</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>primary-no-array-creation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>expression-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>expression-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>this-access</nonterminal>
<xns1:expression>
<terminal>this</terminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>base-access</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>base</terminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>base</terminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>post-increment-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>primary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>++</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>post-decrement-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>primary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>--</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>object-creation-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>argument-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>array-creation-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>non-array-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>rank-specifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>array-initializer</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-initializer</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>delegate-creation-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>delegate-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>typeof-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>typeof</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>typeof</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<terminal>void</terminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>checked-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>checked</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>unchecked-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>unchecked</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>unary-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>primary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>!</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>~</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<nonterminal>pre-increment-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>pre-decrement-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>cast-expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>pre-increment-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>++</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>pre-decrement-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>--</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>cast-expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>multiplicative-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>*</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>/</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>%</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>additive-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>additive-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>additive-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>multiplicative-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>shift-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>additive-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;&lt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>additive-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;&gt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>additive-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>relational-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>shift-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>is</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>as</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>equality-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>equality-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>==</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>equality-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>!=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>relational-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>and-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>equality-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>and-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&#38;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>equality-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>exclusive-or-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>and-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>exclusive-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>^</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>and-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>inclusive-or-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>exclusive-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>inclusive-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>|</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>exclusive-or-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>conditional-and-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>inclusive-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>conditional-and-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&#38;&#38;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>inclusive-or-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>conditional-or-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>conditional-and-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>conditional-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>||</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>conditional-and-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>conditional-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>conditional-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>conditional-or-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>?</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>assignment</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>unary-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>assignment-operator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>assignment-operator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>+=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>*=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>/=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>%=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&#38;=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>|=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>^=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;&lt;=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;&gt;=</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>conditional-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>assignment</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-expression</nonterminal>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>boolean-expression</nonterminal>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>labeled-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>declaration-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>embedded-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>empty-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>selection-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>iteration-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>jump-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>try-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>checked-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>unchecked-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>lock-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>using-statement</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>block</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>statement-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>statement-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>statement</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>statement-list</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>empty-statement</nonterminal>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>labeled-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>declaration-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>local-variable-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>local-constant-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>local-variable-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>local-variable-declarators</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>local-variable-declarators</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>local-variable-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>local-variable-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>local-variable-declarator</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>local-variable-declarator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>local-variable-initializer</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>local-variable-initializer</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-initializer</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>local-constant-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>const</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-declarators</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-declarators</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>constant-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>constant-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-declarator</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-declarator</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>expression-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>statement-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>statement-expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>invocation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>object-creation-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>assignment</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>post-increment-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>post-decrement-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>pre-increment-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>pre-decrement-expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>selection-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>if-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>switch-statement</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>if-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>if</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>boolean-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>if</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>boolean-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>else</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>switch</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>switch-block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-block</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>switch-sections</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-sections</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>switch-section</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>switch-sections</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>switch-section</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-section</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>switch-labels</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>statement-list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-labels</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>switch-label</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>switch-labels</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>switch-label</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>switch-label</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>case</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>default</terminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>iteration-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>while-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>do-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>for-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>foreach-statement</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>while-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>while</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>boolean-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>do-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>do</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>while</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>boolean-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>for-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>for</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>for-initializer</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>for-condition</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>for-iterator</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>for-initializer</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>local-variable-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>statement-expression-list</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>for-condition</nonterminal>
<xns1:expression>
<nonterminal>boolean-expression</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>for-iterator</nonterminal>
<xns1:expression>
<nonterminal>statement-expression-list</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>statement-expression-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>statement-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>statement-expression-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>statement-expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>foreach-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>foreach</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>in</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>jump-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>break-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>continue-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>goto-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>return-statement</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>throw-statement</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>break-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>break</terminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>continue-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>continue</terminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>goto-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>goto</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>goto</terminal>
</xns1:expression>
<xns1:expression>
<terminal>case</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>goto</terminal>
</xns1:expression>
<xns1:expression>
<terminal>default</terminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>return-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>return</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>throw-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>throw</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>try-statement</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>try</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>catch-clauses</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>try</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>finally-clause</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>try</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>catch-clauses</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>finally-clause</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>catch-clauses</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>specific-catch-clauses</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>general-catch-clause</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>specific-catch-clauses</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>general-catch-clause</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>specific-catch-clauses</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>specific-catch-clause</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>specific-catch-clauses</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>specific-catch-clause</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>specific-catch-clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>catch</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>class-type</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>general-catch-clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>catch</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>finally-clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>finally</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>checked-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>checked</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>unchecked-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>unchecked</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>lock-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>lock</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>using-statement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>using</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>resource-acquisition</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>embedded-statement</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>resource-acquisition</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>local-variable-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>namespace</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>qualified-identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>namespace-body</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>qualified-identifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>qualified-identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-body</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>using-directives</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>namespace-member-declarations</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>using-directives</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>using-directive</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>using-directives</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>using-directive</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>using-directive</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>using-alias-directive</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>using-namespace-directive</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>using-alias-directive</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>using</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>namespace-or-type-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>using-namespace-directive</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>using</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>namespace-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-member-declarations</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>namespace-member-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>namespace-member-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>namespace-member-declaration</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>namespace-member-declaration</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>namespace-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type-declaration</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>type-declaration</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>class-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>struct-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>enum-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>delegate-declaration</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>class-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>class</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>class-base</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>class-body</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>class-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>class-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>class-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>abstract</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sealed</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-base</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>class-type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type-list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>class-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type-list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>interface-type-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>interface-type</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>interface-type-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-body</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>class-member-declarations</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-member-declarations</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>class-member-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>class-member-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>class-member-declaration</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>class-member-declaration</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>constant-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>field-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>method-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>property-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>event-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>indexer-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constructor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>destructor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>static-constructor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type-declaration</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>constant-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>const</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>constant-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>constant-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constant-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constant-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>field-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>field-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>field-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>field-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>field-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>field-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>field-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<terminal>readonly</terminal>
</xns1:expression>
<xns1:expression>
<terminal>volatile</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>variable-declarators</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>variable-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>variable-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-declarator</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>variable-declarator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-initializer</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>variable-initializer</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-initializer</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>method-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>method-header</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>method-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>method-header</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>method-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>return-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>member-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>formal-parameter-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>method-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>method-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>method-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>method-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>method-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<terminal>virtual</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sealed</terminal>
</xns1:expression>
<xns1:expression>
<terminal>override</terminal>
</xns1:expression>
<xns1:expression>
<terminal>abstract</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>return-type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>void</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>member-name</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>interface-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>method-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>formal-parameter-list</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>fixed-parameters</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>fixed-parameters</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>parameter-array</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<nonterminal>parameter-array</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>fixed-parameters</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>fixed-parameter</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>fixed-parameters</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>fixed-parameter</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>fixed-parameter</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>parameter-modifier</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>parameter-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>ref</terminal>
</xns1:expression>
<xns1:expression>
<terminal>out</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>parameter-array</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>params</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>array-type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>property-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>property-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>member-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>accessor-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>property-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>property-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>property-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>property-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>property-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<terminal>virtual</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sealed</terminal>
</xns1:expression>
<xns1:expression>
<terminal>override</terminal>
</xns1:expression>
<xns1:expression>
<terminal>abstract</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>accessor-declarations</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>get-accessor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>set-accessor-declaration</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>set-accessor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>get-accessor-declaration</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>get-accessor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>get</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>accessor-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>set-accessor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>set</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>accessor-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>accessor-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>event-declaration</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>event-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>event</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-declarators</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>event-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>event</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>member-name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>event-accessor-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>event-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>event-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>event-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>event-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>event-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<terminal>virtual</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sealed</terminal>
</xns1:expression>
<xns1:expression>
<terminal>override</terminal>
</xns1:expression>
<xns1:expression>
<terminal>abstract</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>event-accessor-declarations</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>add-accessor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>remove-accessor-declaration</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>remove-accessor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>add-accessor-declaration</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>add-accessor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>add</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>remove-accessor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>remove</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>indexer-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>indexer-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>indexer-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>accessor-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>indexer-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>indexer-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>indexer-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>indexer-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>indexer-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>virtual</terminal>
</xns1:expression>
<xns1:expression>
<terminal>sealed</terminal>
</xns1:expression>
<xns1:expression>
<terminal>override</terminal>
</xns1:expression>
<xns1:expression>
<terminal>abstract</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>indexer-declarator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>this</terminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>formal-parameter-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<terminal>this</terminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>formal-parameter-list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>operator-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>operator-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>operator-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>operator-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>operator-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>operator-declarator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>unary-operator-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>binary-operator-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>conversion-operator-declarator</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>unary-operator-declarator</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>operator</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>overloadable-unary-operator</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>overloadable-unary-operator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<terminal>!</terminal>
</xns1:expression>
<xns1:expression>
<terminal>~</terminal>
</xns1:expression>
<xns1:expression>
<terminal>++</terminal>
</xns1:expression>
<xns1:expression>
<terminal>--</terminal>
</xns1:expression>
<xns1:expression>
<terminal>true</terminal>
</xns1:expression>
<xns1:expression>
<terminal>false</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>binary-operator-declarator</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>operator</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>overloadable-binary-operator</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>overloadable-binary-operator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<terminal>*</terminal>
</xns1:expression>
<xns1:expression>
<terminal>/</terminal>
</xns1:expression>
<xns1:expression>
<terminal>%</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&#38;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>|</terminal>
</xns1:expression>
<xns1:expression>
<terminal>^</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;&lt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;&gt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>==</terminal>
</xns1:expression>
<xns1:expression>
<terminal>!=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;=</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>conversion-operator-declarator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>implicit</terminal>
</xns1:expression>
<xns1:expression>
<terminal>operator</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>explicit</terminal>
</xns1:expression>
<xns1:expression>
<terminal>operator</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>operator-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>constructor-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>constructor-declarator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constructor-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>constructor-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>constructor-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constructor-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-declarator</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>formal-parameter-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>constructor-initializer</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-initializer</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<terminal>base</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>argument-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<terminal>this</terminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>argument-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>constructor-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>static-constructor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>static-constructor-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>static-constructor-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>static-constructor-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>static</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>static-constructor-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>destructor-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>extern</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>~</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>destructor-body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>destructor-body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>block</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>attributes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>struct-modifiers</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>struct</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>struct-interfaces</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>struct-body</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-modifiers</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>struct-modifier</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>struct-modifiers</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>struct-modifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-modifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>new</terminal>
</xns1:expression>
<xns1:expression>
<terminal>public</terminal>
</xns1:expression>
<xns1:expression>
<terminal>protected</terminal>
</xns1:expression>
<xns1:expression>
<terminal>internal</terminal>
</xns1:expression>
<xns1:expression>
<terminal>private</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-interfaces</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>interface-type-list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-body</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>struct-member-declarations</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-member-declarations</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>struct-member-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>struct-member-declarations</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>struct-member-declaration</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>struct-member-declaration</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>constant-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>field-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>method-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>property-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>event-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>indexer-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>operator-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>constructor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>static-constructor-declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>type-declaration</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>array-initializer</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>variable-initializer-list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>variable-initializer-list</nonterminal>
</xns1:expression>