0

Here is the ambiguous grammar for a simple DDC compiler in BNF form:

<expr> ::= <term> | <expr> <op1> <expr>
<term> ::= <decimal arg> | <term> <op2> <decimal arg>
<decimal arg> ::= <digit> | <decimal arg> <digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<op1> ::= + | -
<op2> ::= * | /

How can I make this grammar unambiguous?

Lee Taylor
  • 7,761
  • 16
  • 33
  • 49
amorimluc
  • 1,661
  • 5
  • 22
  • 32

1 Answers1

0

I believe you meant the first rule to be

<expr> ::= <term> | <expr> <op1> <term>

which will make the grammar unambiguous.

Ray Toal
  • 86,166
  • 18
  • 182
  • 232