Attribute Grammars/Exercise 2: Numbers: Difference between revisions
From Wiki**3
< Attribute Grammars
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
<p><span lang="pt">Considere a seguinte gramática atributiva:</span></p> | <p><span lang="pt">Considere a seguinte gramática atributiva:</span></p> | ||
<table border="0" cellpadding="3"> | <table border="0" cellpadding="3"> | ||
<tr> | <tr> | ||
<td align="right">s</td> | <td align="right">s</td> | ||
Line 86: | Line 85: | ||
<td align="left"> </td> | <td align="left"> </td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
<p><span lang="pt"> <br /> O elemento lexical <strong>dig</strong> representa um dígito de <strong>0</strong> a <strong>9</strong>, e o seu atributo <em>val</em> representa o valor numérico correspondente.</span></p> | <p><span lang="pt"> <br /> O elemento lexical <strong>dig</strong> representa um dígito de <strong>0</strong> a <strong>9</strong>, e o seu atributo <em>val</em> representa o valor numérico correspondente.</span></p> |
Revision as of 19:30, 19 April 2009
Considere a seguinte gramática atributiva:
s | -> | symbol 1 # symbol 2 | { | |
s. val = symbol 1. val + symbol 2. val | ||||
symbol 1. x = 1 | ||||
symbol 2. x = 1 | ||||
} | ||||
symbol 1 | -> | symbol 2 dig | { | |
symbol 2. x = symbol 1. x * 5 | ||||
symbol 1.val = symbol 2.val + dig.val * symbol 1.x | ||||
} | ||||
symbol | -> | dig | { | |
symbol.val = dig.val * symbol.x | ||||
} |
O elemento lexical dig representa um dígito de 0 a 9, e o seu atributo val representa o valor numérico correspondente.
- Represente a àrvore semântica para a entrada 328#37.
- Apresente uma gramática atributiva equivalente que apenas contenha atributos sintetizados.