Generování ASS
6/69
Myšlenka: Syntaktický analyzátor simuluje vytváření derivačního stromu a současně volá sémantické akce, které vytvářejí AST.
Příklad:
Pravidlo: Sémantická akce:
S  ® i := Ek { S.a   := MakeTree(‘=’, i.a, Ek.a) }
Ei ® Ej + Ek { Ei.a := MakeTree(‘+’, Ej .a, Ek .a) }
Ei ® Ej * Ek { Ei.a := MakeTree(‘*’, Ej .a, Ek .a) }
Ei ® (Ej) { Ei.a := Ej.a }
Ei ®  i { Ei.a  := MakeLeaf(i.a) }
Poznámky:
• MakeTree(o, a, b) vytvoří nový uzel o, naváže levého syna a, pravého syna b, a vrátí ukazatel na uzel o
• MakeLeaf(i.a) vytvoří nový uzel i.a (i.a je adresa do tabulky symbolů) a vrátí ukazatel na tento uzel