Week 2

Solution 2.1:

Number ::= -? PDigit (Underscore Digit)* | 0
Underscore ::= _*
PDigit ::= 1 | … | 9
Digit ::= 0 | PDigit

 

Solution 2.2:

a+ : a a*

1. (a | c | … | z)*
2. (a|b) letter* c
3. (a letter* b) | (b letter* a)

 

Solution 2.3:

 

 

Solution 2.4: