Pok-10-wyk-Slajd45
Typy atrybutów – deklaracje w parserze
Po zdefiniowaniu typów atrybutów za pomocą % union konieczne jest wskazanie typów wszystkich symboli gramatyki, na których będziemy operować w akcjach semantycznych.
W celu przypisania typów symbolom nieterminalnym należy użyć słowa kluczowego % type . Za % type należy wskazać - w nawiasach trójkątnych – pole unii odpowiedniego typu, a następnie wymienić nieterminal lub nieterminale, których atrybuty mają być tego typu.
W przypadku symboli terminalnych przypisywanie typów odbywa się podobnie. Zamiast słowa kluczowego % type używamy % token (tak jak do deklarowania jednostek leksykalnych).
Niektóre (starsze) wersje YACCów dopuszczały również korzystanie z atrybutów bez deklaracji typów za pomocą bezpośrednich odwołań do pól unii (w C za pomocą ‘.’ lub ‘->’). Jest to jednak metoda nieprzenośna i merytorycznie niewskazana.