32 lines
805 B
C
32 lines
805 B
C
|
|
#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;
|
||
|
|
};
|
||
|
|
|