2015-08-07 4 views
0

J'ai lu un article sur BNF, et il y a des codes que je ne comprends pas. Je ne comprends pas les moyens """value":"value""". Le letters_and_digits n'a plus aucune définition. Cela fait-il fonctionner? Ou si je veux définir le letters_and_or_digits. Que devrais-je faire?Les codes de cette BNF sont difficiles à comprendre

Merci.

+0

Je suppose que la « valeur » dans la ligne 2 fait référence au symbole sur la ligne 3, et peut-être "" est une séquence spéciale qui signifie une citation littérale ". – Bill

Répondre

0

En supposant que est de [1], où il est dit en BNF étendu, je traduis en BNF avec littéraux et classes de personnages comme suit:

terminal ::= quote value quote 
quote ::= '"' 

value ::= letters_and_or_digits 
value ::= sigil letters_and_or_digits 
sigil ::= '$' 
letters_and_or_digits ::= [a-zA-Z0-9]+ 

Note: [] EBNF signifie une option, donc ["$"]letters_and_or_digits est interprété comme nu letters_and_or_digits ou letters_and_or_digits précédé de $.

[1] « Tous les fichiers de grammaire sont écrits en utilisant une extension Backus Naur Form (BNF) syntaxe » - http://www.exida.com/images/uploads/On%20Shaky%20Ground%20-%20NPIC_HMIT_2006%20Paper.pdf