#pragma once
///////////////////////////////////////////////////////////////////
// interface to the annotations
///////////////////////////////////////////////////////////////////



class SgAnnotation
{
public:
    // the id of the annotation;
    int id;
    // the annotation itself;
    SgExpression *theannotation;
    //the statement  it is attached on;
    SgStatement *stmt;
    SgStatement *scopebegin;
    SgStatement *scopeend;
    int defined;
    SgExpression *thedirective;
    char *directiveName;
    // pointer to the next annotation for a statement;
    SgAnnotation *next;
    SgAnnotation(int id);
    ~SgAnnotation();
    char * unparse();
    int applyToStatement(SgStatement *stat);
    SgExpression **directiveFields;
    int nbDirectiveFields;
};

