| <宣言式> |
 |
{<変数宣言式>|<関数宣言式> |
| |
|
|<クラス宣言式>|<メソッド宣言式>|<秘伝宣言式>} |
| |
|
|
| <変数宣言式> |
 |
var <識別子> [`=' <式>] {`,' <識別子> [`=' <式>]}* `;' |
| |
|
|
| <関数宣言式> |
 |
func <識別子> `(' [<仮引数列>] `)' <式> |
| |
|
|
| <クラス宣言式> |
 |
class <識別子> [':' <識別子>] `{' {<メンバ宣言>}* `}' |
| |
|
|
| <メンバ宣言> |
 |
{< private宣言>|< public宣言>|< static宣言> |
| |
|
|<メソッド宣言>|<秘伝宣言>} |
| |
|
|
| < private宣言> |
 |
private <識別子> { `,' <識別子> }* |
| |
|
|
| < public宣言> |
 |
public <識別子> { `,' <識別子> }* |
| |
|
|
| < static宣言> |
 |
static <識別子> [`=' <式>]{ `,' <識別子> [`=' <式>]}* |
| |
|
|
| <メソッド宣言> |
 |
method {<メソッド定義列>|<クリエータ定義>} |
| |
|
|
| <メソッド定義列> |
 |
<メソッド定義>{`,' <メソッド定義>}* |
| |
|
|
| <メソッド定義> |
 |
<識別子> [[ `(' [<仮引数列>] `)' <式> ] |
| |
|
|
| <クリエータ定義> |
 |
New [ `(' [<仮引数列>] `)' [ `:' `('[<式列>]`)'] <式>] |
| |
|
|
| <秘伝宣言> |
 |
hiden <識別子> [[ `(' [<仮引数列>] `)' <式> ] |
| |
|
{',' <識別子> [`(' [<仮引数列>] `)' <式>]}*] |
| |
|
|
| <メソッド宣言式> |
 |
method <識別子>`::'{<外部メソッド定義>|<外部クリエータ定義>} |
| |
|
|
| <外部メソッド定義> |
 |
<識別子> `(' [<仮引数列>] `)' <式> |
| |
|
|
| <外部クリエータ定義> |
 |
New `(' [<仮引数列>] `)' [`:' `(' [<式列>] `)'] <式> |
| |
|
|
| <秘伝宣言式> |
 |
hiden <識別子>`::'<識別子> `(' [<仮引数列>] `)' <式> |
| |
|
|
| <仮引数列> |
 |
<識別子>{`,' <識別子>}* |