|
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 |