(self)
return rv
Production: test ( '&&' and_cond ) ?
Production: test ( '&&' and_cond ) ?
Production : test ( && and_cond ) ?
def __get_logical_and(self):
        """
        Production: test ( '&&' and_cond ) ?
        """
        if not len(self.content):
            return None
        rv = Expression.__AST("logical_op")
        # test
        rv.append(self.__get_equality())
        self.__ignore_whitespace()
        if self.content[:2] != '&&':
            # no logical op needed, short cut to our prime element
            return rv[0]
        # append operator
        rv.append(Expression.__ASTLeaf('op', self.content[:2]))
        self.__strip(2)
        self.__ignore_whitespace()
        rv.append(self.__get_logical_and())
        self.__ignore_whitespace()
        return rv
def __get_logical_and ( self ) : if not len ( self . content ) : return None rv = Expression . __AST ( "logical_op" ) # test rv . append ( self . __get_equality ( ) ) self . __ignore_whitespace ( ) if self . content [ : 2 ] != '&&' : # no logical op needed, short cut to our prime element return rv [ 0 ] # append operator rv . append ( Expression . __ASTLeaf ( 'op' , self . content [ : 2 ] ) ) self . __strip ( 2 ) self . __ignore_whitespace ( ) rv . append ( self . __get_logical_and ( ) ) self . __ignore_whitespace ( ) return rv