def _parseExpression(self, src, returnList=False):
        """
        expr
        : term [ operator term ]*
        ;
        """
        src, term = self._parseExpressionTerm(src)
        operator = None
        while src[:1] not in ('', ';', '{', '}', '[', ']', ')'):
            for operator in self.ExpressionOperators:
                if src.startswith(operator):
                    src = src[len(operator):]
                    break
            else:
                operator = ' '
            src, term2 = self._parseExpressionTerm(src.lstrip())
            if term2 is NotImplemented:
                break
            else:
                term = self.cssBuilder.combineTerms(term, operator, term2)

        if operator is None and returnList:
            term = self.cssBuilder.combineTerms(term, None, None)
            return src, term
        else:
            return src, term
def _parseExpression ( self , src , returnList = False ) : src , term = self . _parseExpressionTerm ( src ) operator = None while src [ : 1 ] not in ( '' , ';' , '{' , '}' , '[' , ']' , ')' ) : for operator in self . ExpressionOperators : if src . startswith ( operator ) : src = src [ len ( operator ) : ] break else : operator = ' ' src , term2 = self . _parseExpressionTerm ( src . lstrip ( ) ) if term2 is NotImplemented : break else : term = self . cssBuilder . combineTerms ( term , operator , term2 ) if operator is None and returnList : term = self . cssBuilder . combineTerms ( term , None , None ) return src , term else : return src , term
expr
        : term [ operator term ]*
        ;