|
|
Production
|
Semantic Rules
|
| 1. |
<based-num> ::= <num> <basechar> |
Val(<based-num>) = Val(<num>)
Base(<num>) = Base(<basechar>) |
| 2. |
<basechar> ::= o |
Base(<basechar>) = 8 |
| 3. |
<basechar> ::= d |
Base(<basechar>) = 10 |
| 4. |
<num1> ::= <num2> <digit> |
Val(<num1>) =
if Val(<digit>) == error or Val(<num2>) == error
then error
else Val(<num2>) * Base(<num1>) + Val(<digit>)
Base(<num2>) = Base(<num1>)
Base(<digit>) = Base(<num1>) |
| 5. |
<num> ::= <digit> |
Val(<num>) = Val(<digit>)
Base(<digit>) = Base(<num>) |
| 6. |
<digit> ::= 0 |
Val(<digit>) = 0 |
| … |
… |
… |
| 14. |
<digit> ::= 8 |
Val(<digit>) =
if Base(<digit>) == 8
then error else 8 |
| 15. |
<digit> ::= 9 |
Val(<digit>) =
if Base(<digit>) == 8
then error else 9 |