1 |
#ifndef ASCXX_ANNOTATION_H |
2 |
#define ASCXX_ANNOTATION_H |
3 |
|
4 |
#include "symchar.h" |
5 |
#include "type.h" |
6 |
|
7 |
#include <vector> |
8 |
|
9 |
class Annotation{ |
10 |
private: |
11 |
struct Note *n; |
12 |
public: |
13 |
Annotation(); |
14 |
Annotation(struct Note *); |
15 |
~Annotation(); |
16 |
|
17 |
const char *getId() const; |
18 |
const char *getMethod() const; |
19 |
const SymChar getType() const; |
20 |
const SymChar getLanguage() const; |
21 |
const char *getFilename() const; |
22 |
const int getLineNumber() const; |
23 |
const char *getText() const; |
24 |
const int getDataType() const; |
25 |
//const void *getUserData(const int &datatype) const; |
26 |
}; |
27 |
|
28 |
class AnnotationDatabase{ |
29 |
private: |
30 |
const symchar *dbid; |
31 |
public: |
32 |
AnnotationDatabase(const SymChar &dbid); |
33 |
std::vector<Annotation> getNotes(const Type &type, const SymChar *lang=NULL |
34 |
, const SymChar *id=NULL, const SymChar *method=NULL, const int flag=0 |
35 |
); |
36 |
|
37 |
std::vector<Annotation> getTypeRefinedNotesLang(const Type &type |
38 |
, const SymChar *lang |
39 |
); |
40 |
|
41 |
const char *getNoteForVariable(const Type &type |
42 |
, const SymChar *varname |
43 |
, const SymChar *lang=NULL /* assume 'inline' if not specified */ |
44 |
); |
45 |
}; |
46 |
|
47 |
#endif |