expression    :   expression SUBSET lexp

def p_expression_subsetlist(self, p):
        ''' expression    :   expression SUBSET lexp 
        '''
        _LOGGER.debug("expresion -> expresion SUBSET lexp")
    
        if p[1].type != TypedClass.LIST: raise TypeError("lists expected for SUBSET operator")
        if p[3].type != TypedClass.LIST: raise TypeError("lists expected for SUBSET operator")
        
        retval = True
        for vl in p[1].value:
            found = False
            for vr in p[3].value:
                if vl == vr:
                    found = True
                    break
            if not found:
                retval = False
                break
        
        p[0] = TypedClass(retval, TypedClass.BOOLEAN)