Document last modified:
<!ELEMENT exp ( (exp, plus, exp) | (exp, times, exp) | (lparen, exp, rparen) | a | b | c )>
i. a + b
<exp>
<exp><a/></exp>
<plus/>
<exp><b/></exp>
</exp>
ii. a * b + c
<exp>
<exp>
<exp><a/></exp>
<times/>
<exp><b/></exp>
</exp>
<plus/>
<exp><c/></exp>
</exp>
iii. (a + b) * c
<exp>
<exp>
<lparen/>
<exp>
<exp><a/></exp>
<plus/>
<exp><b/></exp>
</exp>
<rparen/>
</exp>
<times/>
<exp><c/></exp>
</exp>
<!ELEMENT digit (zero | one | two | three)>
<!ELEMENT unsigned (digit+)>
Iterative
<!ELEMENT unsigned (digit | (unsigned, digit))>
Recursive
<!ELEMENT signed ((plus, unsigned) | (minus, unsigned))>
<!ELEMENT plus EMPTY>
<!ELEMENT minus EMPTY>
<!ELEMENT zero EMPTY>
<!ELEMENT one EMPTY>
<!ELEMENT two EMPTY>
<!ELEMENT three EMPTY>
<!DOCTYPE unsigned
SYSTEM "ex9.dtd">
Using iterative
<unsigned>
<digit>
<one/>
</digit>
<digit>
<two/>
</digit>
<digit>
<three/>
</digit>
</unsigned>
<!DOCTYPE unsigned SYSTEM "ex9.dtd">
Using Recursive
<unsigned>
<unsigned>
<unsigned>
<digit><one/></digit>
</unsigned>
<digit><two/></digit>
</unsigned>
<digit><three/></digit>
</unsigned>