*SUPPORT*
IN: dax wif gazzer wif gazzer blicket dax OUT: RED GREEN GREEN RED GREEN
IN: zup OUT: YELLOW
IN: zup gazzer OUT: YELLOW GREEN
IN: zup zup OUT: YELLOW YELLOW
IN: fep zup dax tufa zup blicket fep OUT: PURPLE YELLOW RED YELLOW PURPLE YELLOW
IN: fep gazzer OUT: PURPLE GREEN
IN: dax blicket gazzer blicket gazzer OUT: RED GREEN RED GREEN RED GREEN RED
IN: gazzer zup OUT: GREEN YELLOW
IN: dax gazzer OUT: RED GREEN
IN: gazzer tufa fep OUT: GREEN PURPLE
IN: dax wif fep OUT: RED PURPLE
IN: dax blicket fep wif dax blicket dax OUT: RED PURPLE RED RED RED RED
IN: dax blicket gazzer OUT: RED GREEN RED
IN: gazzer OUT: GREEN

*QUERY*
IN: dax OUT: RED
IN: dax fep OUT: RED PURPLE
IN: dax wif dax tufa zup blicket dax OUT: RED RED YELLOW RED YELLOW
IN: fep tufa gazzer wif fep dax OUT: PURPLE GREEN PURPLE RED
IN: fep OUT: PURPLE
IN: dax blicket gazzer blicket zup OUT: RED GREEN RED YELLOW RED GREEN RED
IN: fep zup blicket zup OUT: PURPLE YELLOW YELLOW PURPLE YELLOW
IN: gazzer blicket zup OUT: GREEN YELLOW GREEN
IN: gazzer blicket dax OUT: GREEN RED GREEN
IN: dax dax blicket zup OUT: RED RED YELLOW RED RED

*GRAMMAR*
zup -> YELLOW 
 dax -> RED 
 gazzer -> GREEN 
 fep -> PURPLE 
 x1 wif x2 -> [x1] [x2] 
 x1 tufa x2 -> [x1] [x2] 
 x1 blicket u1 -> [x1] [u1] [x1] 
 u1 x1 -> [u1] [x1] 
 