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

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

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