2012-02-29 1 views
0

Comment puis-je écrire une grammaire BNF mimant les déclarations de méthode Java?grammaire BNF mimant les déclarations de méthode Java

Voici ce que j'ai:

<call> ::= <return-type> <method-identifier>(<parameter-list>); 
<return-type> ::= void | <type> 
<type> ::= byte | short | int | long | float | double | boolean | char 
<parameter-list> ::= <parameter> | <parameter>,<parameter-list> 
<parameter> ::= <type> <parameter-identifier> 

Ai-je la bonne idée? Est-ce la forme correcte pour BNF? Cela ne sera pas mis en œuvre pour quoi que ce soit, je suis juste en train d'essayer de comprendre l'idée.

+1

L'idée est juste, mais certaines choses manquent: une liste de paramètres peut également être vide, et un type peut aussi être quelque chose d'autre qu'un type primitif ou 'void'. – Jesper

+1

Ne parlez-vous pas des déclarations de méthodes ici? – yatima2975

Répondre

3

Je pense que vous allez dans la bonne direction. Cependant, type n'autorise pas les noms de classe (en Java, vous pouvez passer des objets en tant que paramètres). Et il vous manque le bloc throws et il ne permet pas les tableaux.

Pourquoi ne pas comparer avec vous the actual BNF grammar for Java?