/* Appends a declaration to the current declaration list. Returns the list with the new property appended to it, or NULL in case of an error.  */
CRDeclaration* cr_declaration_append2(CRDeclaration *a_this, CRString *a_prop, CRTerm *a_value)
/* Appends a declaration to the current declaration list. Returns the list with the new property appended to it, or NULL in case of an error.  */
CRDeclaration* cr_declaration_append2(CRDeclaration *a_this, CRString *a_prop, CRTerm *a_value)
{
        CRDeclaration *new_elem = NULL;
        if (a_this) {
                new_elem = cr_declaration_new (a_this->parent_statement,
                                               a_prop, a_value);
        } else {
                new_elem = cr_declaration_new (NULL, a_prop, a_value);
        }
        g_return_val_if_fail (new_elem, NULL);
        return cr_declaration_append (a_this, new_elem);
}