A

1. The following set of rules are provided

<digit>::= 0|1|2|3|4|5|6|7|8|9|

<digitorder>::=<digit>{<digit>}

<sign>::= + | -

<integer>::=[<sign>]<digitorder>

Explain why each of the following integers is valid or invalid using these rules:

a. 12345  

    valid - digitorder | integer   

b. –1001     

    valid - integer

c. +3         

    valid - integer

d. 009

    valid - digitorder | integer

e. –22

    valid - integer

f. +/- 7

    not valid - + /-

g. 3 + 8

    not valid

h. –00

    valid 

i. -1

    valid

2. Another language uses the following set of rules:

<digit>::= 0|1|2|3|4|5|6|7|8|9

<letter>::= a|b|..|z|A|B|.. |Z

<alphanumeric. ::= <letter>|<digit>

<identifier>::= <letter><alphanumeric>

Explain why each of the following identifiers is valid or invalid using these rules:

a. OhNo         

b. Z1             c. x4             d. a b             e. aa          f. z?p


  • Write these syntax rules in both EBNF and Railroad diagram.
  • The letters of the alphabet are divided into vowels (A,E,I,O and U) and consonants (all letters). 
    <letter> = <vowel>|<consonant>
  • A two-letter word must consist of either a vowel followed by a consonant or a consonant followed by a vowel. 

Set 5A
1. D
2. B
3. 
Comments