Je souhaite que BNF, EBNF, l'expression régulière et la syntaxe lex reconnaissent ce qui suit: La chaîne doit commencer par l'une de A, B, C, D ou E suivie de autant que vous le souhaitez de A, B, C , D, E, 0,1,2,3, _ vous pouvez aussi avoir 1 ou 0 du symbole $.Les expressions BNF, EBNF, Regular et Lex sont-elles correctes?
Jusqu'à présent, je fait:
expression régulière
[A-E]([A-E0-9_]*[$]?[A-E0-9_]*)
BNF
<S>::= <letter><Rest>
<Rest>::=<rest1><symbol>|<rest1><symbol><rest1>|<symbol><rest1>|<rest1>|<symbol>
<rest1>::=<character><rest1>|<rest1><character>|<character>
<character>::=A|B|C|D|E|1|2|3|4|_
<letter>::=A|B|C|D|E
<symbol>::=$
EBNF
S=letter{character}[symbol]{character}
letter=|"A"|"B"|"C"|"D"|"E"|
character=|"1"|"2"|"3"|"4"|"A"|"B"|"C"|"D"|"E"|"_"
symbol="$"
lex
^[A-E][A-E0-3_]*[$]?[A-E0-3_]*$
Sont-ils corrects? L'expression régulière est 100% correcte Je pense avoir mes doutes sur ebnf, bnf et lex