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

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

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