Difference between revisions of "Attribute Grammars/Exercise 6: Expressions with bases percentages"

From Wiki**3

< Attribute Grammars
(New page: == Problem (in Portuguese) == E<sub>0</sub> -> E<sub>1</sub> '''+''' T { <font color="blue">E<sub>0</sub>.val = E<sub>1</sub>.val + T.val;</font> } E -> T { <font color="blue"...)
 
(Problem (in Portuguese))
Line 5: Line 5:
 
  T<sub>0</sub> -> T<sub>1</sub> '''@''' F  { <font color="blue">T<sub>0</sub>.val = T<sub>1</sub>.val * F.val / 100;</font> }
 
  T<sub>0</sub> -> T<sub>1</sub> '''@''' F  { <font color="blue">T<sub>0</sub>.val = T<sub>1</sub>.val * F.val / 100;</font> }
 
  T -> F        { <font color="blue">T.val = F.val;</font> }
 
  T -> F        { <font color="blue">T.val = F.val;</font> }
  F -> '''(''' E ''')''' { <font color="blue">F.val = E.val;</font> }
+
  F -> '''(''' E ''')'''         { <font color="blue">F.val = E.val;</font> }
F -> N      { <font color="blue">F.val = N.val;</font> }
 
 
  F -> N      { <font color="blue">F.val = N.val;</font> }
 
  F -> N      { <font color="blue">F.val = N.val;</font> }
 
  N<sub>0</sub> -> N<sub>1</sub> '''DIG'''      { <font color="blue">N<sub>0</sub>.val = N<sub>1</sub>.val * 10 + DIG.val;</font> }
 
  N<sub>0</sub> -> N<sub>1</sub> '''DIG'''      { <font color="blue">N<sub>0</sub>.val = N<sub>1</sub>.val * 10 + DIG.val;</font> }

Revision as of 17:50, 13 June 2010

Problem (in Portuguese)

E0 -> E1 + T   { E0.val = E1.val + T.val; }
E -> T         { E.val = T.val; }
T0 -> T1 @ F   { T0.val = T1.val * F.val / 100; }
T -> F         { T.val = F.val; }
F -> ( E )         { F.val = E.val; }
F -> N       { F.val = N.val; }
N0 -> N1 DIG       { N0.val = N1.val * 10 + DIG.val; }
N -> DIG       { N.val = DIG.val; }

The following is the annotated tree.

File:AttrGramEx6.png