プログラミング言語は文法によって定義されます。たとえば、Java は JLS で定義されています。こちらを参照してください。
これは最小限の「圧縮された」文法であり、構成要素が 2 回使用されることはありません。結果は - 私にとっては - MethodDeclaratorRestのような役に立たない文法記述であり、ここでわかるようにMethodOrFieldDeclに追加されます。アプローチ"
MethodOrFieldDecl: 型識別子 MethodOrFieldRest MethodOrFieldRest: VariableDeclaratorRest MethodDeclaratorRest MethodDeclaratorRest: FormalParameters {[]} [QualifiedIdentifierList をスロー] ( MethodBody | ; )
これは一般的には問題ありませんが、タイプMethodDeclarationのすべての必要な情報がリストされている次のような文法が必要です。これを「トップダウンアプローチ」と呼びます。
メソッド宣言: [ Javadoc ] { ExtendedModifier } [ ] ( タイプ | void ) 識別子 ( [ 仮引数 { , FormalParameter } ] ) {[ ] } [ TypeName { , TypeName } をスローする ] ( ブロック | ; )
「トップダウンの文法アプローチ」を検索して、「最小限の圧縮されたアプローチ」を使用して、Pete Jinks の Web サイトを見つけました。
ここで、「トップダウンアプローチ」を使用して、プログラミング言語 C の文法定義を作成したいと思います。