<?xml version="1.0"?>
<section id="methods">
	<h>Methods</h>
	<section id="declaration">
		<h>Method declarations</h>
		<p>Methods may be declared in namespaces, classes, interfaces, structs, enums, and error domains</p>
		<blockquote>
method-declaration:
	[ access-modifier ] [ member-modifers ] return-type qualified-identifier ( [ parameter-list ] ) method-contract [ <l>throws</l> error-list ] <l>{</l> statement-list <l>}</l>

member-modifiers:
	member-modifier [ member-modifiers ]

member-modifier:
	<l>abstract</l>
	<l>class</l>
	<l>extern</l>
	<l>inline</l>
	<l>override</l>
	<l>static</l>
	<l>virtual</l>

return-type:
	type
	<l>void</l>

parameter-list:
	[ parameter-direction ] type identifier [ <l>,</l> parameter-list ]

parameter-direction:
	<l>ref</l>
	<l>out</l>

method-contract:
	[ <l>requires</l> <l>(</l> expression <l>)</l> ] [ <l>ensures</l> <l>(</l> expression <l>)</l> ]

error-list:
	error-type [ <l>,</l> error-list ]

</blockquote>
	</section>
</section>

