## cr-additional-sel cr-additional-sel |

## Synopsis

    struct              CRAdditionalSel;
    CRAdditionalSel *   cr_additional_sel_append            (CRAdditionalSel *a_this,
                                                             CRAdditionalSel *a_sel);
    void                cr_additional_sel_destroy           (CRAdditionalSel *a_this);
    void                cr_additional_sel_dump              (CRAdditionalSel const *a_this,
                                                             FILE *a_fp);
    CRAdditionalSel *   cr_additional_sel_new               (void);
    CRAdditionalSel *   cr_additional_sel_new_with_type     (enum AddSelectorType a_sel_type);
    guchar *            cr_additional_sel_one_to_string     (CRAdditionalSel const *a_this);
    CRAdditionalSel *   cr_additional_sel_prepend           (CRAdditionalSel *a_this,
                                                             CRAdditionalSel *a_sel);
    void                cr_additional_sel_set_attr_sel      (CRAdditionalSel *a_this,
                                                             CRAttrSel *a_sel);
    void                cr_additional_sel_set_class_name    (CRAdditionalSel *a_this,
                                                             CRString *a_class_name);
    void                cr_additional_sel_set_id_name       (CRAdditionalSel *a_this,
                                                             CRString *a_id);
    void                cr_additional_sel_set_pseudo        (CRAdditionalSel *a_this,
                                                             CRPseudo *a_pseudo);
    guchar *            cr_additional_sel_to_string         (CRAdditionalSel const *a_this);

## Description

## Details

### struct CRAdditionalSel

    struct CRAdditionalSel {
            enum AddSelectorType type ;
            union CRAdditionalSelectorContent content ;

            CRAdditionalSel * next ;
            CRAdditionalSel * prev ;
            CRParsingLocation location ;
    };

CRAdditionalSel abstracts an additionnal selector. An additional selector is the selector part that comes after the combination of type selectors. It can be either "a class selector (the .class part), a pseudo class selector, an attribute selector or an id selector.

### cr_additional_sel_append ()

    CRAdditionalSel *   cr_additional_sel_append            (CRAdditionalSel *a_this,
                                                             CRAdditionalSel *a_sel);

Appends a new instance of CRAdditional to the current list of CRAdditional.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_sel` : | the new instance to CRAdditional to append.
Returns : | the new list of CRAdditionalSel or NULL if an error arises.

### cr_additional_sel_destroy ()

    void                cr_additional_sel_destroy           (CRAdditionalSel *a_this);

Destroys an instance of CRAdditional.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .

### cr_additional_sel_dump ()

    void                cr_additional_sel_dump              (CRAdditionalSel const *a_this,
                                                             FILE *a_fp);

Dumps the current instance of CRAdditionalSel to a file

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel.
`a_fp` : | the destination file.

### cr_additional_sel_new ()

    CRAdditionalSel *   cr_additional_sel_new               (void);

Default constructor of CRAdditionalSel.

Returns : | the newly build instance of CRAdditionalSel.

### cr_additional_sel_new_with_type ()

    CRAdditionalSel *   cr_additional_sel_new_with_type     (enum AddSelectorType a_sel_type);

Constructor of CRAdditionalSel.

`a_sel_type` : | the type of the newly built instance of CRAdditionalSel.
Returns : | the newly built instance of CRAdditionalSel.

### cr_additional_sel_one_to_string ()

    guchar *            cr_additional_sel_one_to_string     (CRAdditionalSel const *a_this);

### cr_additional_sel_prepend ()

    CRAdditionalSel *   cr_additional_sel_prepend           (CRAdditionalSel *a_this,
                                                             CRAdditionalSel *a_sel);

Preppends a new instance of CRAdditional to the current list of CRAdditional.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_sel` : | the new instance to CRAdditional to preappend.
Returns : | the new list of CRAdditionalSel or NULL if an error arises.

### cr_additional_sel_set_attr_sel ()

    void                cr_additional_sel_set_attr_sel      (CRAdditionalSel *a_this,
                                                             CRAttrSel *a_sel);

Sets a new instance of CRAttrSel to a ATTRIBUTE additional selector.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_sel` : | the new instance of CRAttrSel to set.

### cr_additional_sel_set_class_name ()

    void                cr_additional_sel_set_class_name    (CRAdditionalSel *a_this,
                                                             CRString *a_class_name);

Sets a new class name to a CLASS additional selector.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_class_name` : | the new class name to set.

### cr_additional_sel_set_id_name ()

    void                cr_additional_sel_set_id_name       (CRAdditionalSel *a_this,
                                                             CRString *a_id);

Sets a new id name to an ID additional selector.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_id` : | the new id to set.

### cr_additional_sel_set_pseudo ()

    void                cr_additional_sel_set_pseudo        (CRAdditionalSel *a_this,
                                                             CRPseudo *a_pseudo);

Sets a new pseudo to a PSEUDO additional selector.

`a_this` : | the "this pointer" of the current instance of CRAdditionalSel .
`a_pseudo` : | the new pseudo to set.

### cr_additional_sel_to_string ()

    guchar *            cr_additional_sel_to_string         (CRAdditionalSel const *a_this);