def eval_content_with_bind_actions(self, content):
if content is None:<EOL><INDENT>return None<EOL><DEDENT>if isinstance(content, (list, tuple)):<EOL><INDENT>return [self.eval_content_with_bind_actions(item) for item in content]<EOL><DEDENT>if isinstance(content, dict):<EOL><INDENT>evaluated_data = {}<EOL>for key, value in content.items():<EOL><INDENT>eval_key = self.eval_content_with_bind_actions(key)<EOL>eval_value = self.eval_content_with_bind_actions(value)<EOL>evaluated_data[eval_key] = eval_value<EOL><DEDENT>return evaluated_data<EOL><DEDENT>if isinstance(content, p_compat.basestring):<EOL><INDENT>content = content.strip()<EOL>content = self._eval_content_functions(content)<EOL>content = self._eval_content_variables(content)<EOL><DEDENT>return content<EOL>
parse content recursively, each variable and function in content will be evaluated.

        @param content =>  any data structure with ${func} or $variable