CFG context-free grammar rules: left-hand side only 1 letter
ref: CFG vs PEG. Context-Free Gram VS Parsing Expression Gram.
Es derivation of all strings by 2 productions using only rule 1&2
rule 1 as 1st
E 1 (E+E) 1 (E+(E+E)) ... (5+(6+7))
E 1 (E+E) 1 ((E+E)+E) ... ((5+6)+7)
E 1 (E+E) 2 (E+(E*E)) ... (5+(6*7))
E 1 (E+E) 2 ((E*E)+E) ... ((5*6)+7)
rule 2 as 1st
E 2 (E*E) 1 (E*(E+E)) ... (5*(6+7))
E 2 (E*E) 1 ((E+E)*E) ... ((5+6)*7)
E 2 (E*E) 2 (E*(E*E)) ... (5*(6*7))
E 2 (E*E) 2 ((E*E)*E) ... ((5*6)*7)
Notation: P nr Q reads
per costruire le espressioni +* con priorita' della moltiplicazione, evitando cosi' parte delle parentesi.
regola 3 4 5 6 "esplora" il contesto di E per stabilire se sostituire con parentesi o senza
S → E+E
S → E*E
+E → E+E
E+ → E+E
*E → *(E+E)
E* → (E+E)*
E → E*E
E → nr
S 1 E+E 3 E+E+E ... 2+3+4
S 1 E+E 7 E+E*E ... 2+3*4
S 1 E*E 7 E*E*E ... 2*3*4
S 1 E*E 5 E*(E+E) ... 2*(3+4)
S 1 E*E 6 (E+E)*E ... (2+3)*4