 |
OMNeT++ NEDXML 6.2.0
Discrete Event Simulation Library
|
|
Go to the documentation of this file.
17 #ifndef __OMNETPP_NEDXML_MSGANALYZER_H
18 #define __OMNETPP_NEDXML_MSGANALYZER_H
28 #include "msgelements.h"
62 void analyzeClassOrStruct(
ClassInfo& classInfo,
const std::string& namespaceName);
63 void analyzeFields(
ClassInfo& classInfo,
const std::string& namespaceName);
64 void analyzeField(
ClassInfo& classInfo,
FieldInfo *field,
const std::string& namespaceName);
66 std::string prefixWithNamespace(
const std::string& name,
const std::string& namespaceName);
68 bool hasSuperclass(
ClassInfo& classInfo,
const std::string& superclassQName);
72 bool getPropertyAsBool(
const Properties& p,
const char *name,
bool defval);
73 std::string getProperty(
const Properties& p,
const char *name,
const std::string& defval = std::string());
74 std::string getMethodProperty(
const Properties& props,
const char *propName,
bool existingClass);
75 std::string decorateType(
const std::string& typeName,
bool isConst,
bool isPointer,
bool isRef);
76 std::string makeRelative(
const std::string& qname,
const std::string& namespaceName);
77 std::string lookupExistingClassName(
const std::string& name,
const std::string& contextNamespace, ClassInfo *contextClass=
nullptr);
78 void validateProperty(
const Property& property,
const char *usage);
83 ClassInfo extractClassInfo(
ASTNode *node,
const std::string& namespaceName,
bool isImported);
84 void ensureAnalyzed(ClassInfo& classInfo);
85 void ensureFieldsAnalyzed(ClassInfo& classInfo);
86 ClassInfo extractEnumInfo(
ASTNode *node,
const std::string& namespaceName);
87 Property extractProperty(PropertyElement *propertyElem);
88 void validateFileProperty(
const Property& property);
89 void analyzeCplusplusBlockTarget(CplusplusElement *cppElem,
const std::string& currentNamespace);
92 static constexpr
const char* ATT_NAME =
"name";
93 static constexpr
const char* ATT_EXTENDS_NAME =
"extends-name";
95 static constexpr
const char* PROP_PROPERTY =
"property";
96 static constexpr
const char* PROP_ABSTRACT =
"abstract";
97 static constexpr
const char* PROP_ACTUALLY =
"actually";
98 static constexpr
const char* PROP_PRIMITIVE =
"primitive";
99 static constexpr
const char* PROP_OPAQUE =
"opaque";
100 static constexpr
const char* PROP_BYVALUE =
"byValue";
101 static constexpr
const char* PROP_SUPPORTSPTR =
"supportsPtr";
102 static constexpr
const char* PROP_SUBCLASSABLE =
"subclassable";
103 static constexpr
const char* PROP_POLYMORPHIC =
"polymorphic";
104 static constexpr
const char* PROP_CLASS =
"class";
105 static constexpr
const char* PROP_BASETYPE =
"baseType";
106 static constexpr
const char* PROP_DEFAULTVALUE =
"defaultValue";
107 static constexpr
const char* PROP_CPPTYPE =
"cppType";
108 static constexpr
const char* PROP_DATAMEMBERTYPE =
"datamemberType";
109 static constexpr
const char* PROP_ARGTYPE =
"argType";
110 static constexpr
const char* PROP_RETURNTYPE =
"returnType";
111 static constexpr
const char* PROP_TOSTRING =
"toString";
112 static constexpr
const char* PROP_FROMSTRING =
"fromString";
113 static constexpr
const char* PROP_TOVALUE =
"toValue";
114 static constexpr
const char* PROP_FROMVALUE =
"fromValue";
115 static constexpr
const char* PROP_GETTERCONVERSION =
"getterConversion";
116 static constexpr
const char* PROP_CLONE =
"clone";
117 static constexpr
const char* PROP_EXISTINGCLASS =
"existingClass";
118 static constexpr
const char* PROP_DESCRIPTOR =
"descriptor";
119 static constexpr
const char* PROP_CASTFUNCTION =
"castFunction";
120 static constexpr
const char* PROP_OMITGETVERB =
"omitGetVerb";
121 static constexpr
const char* PROP_FIELDNAMESUFFIX =
"fieldNameSuffix";
122 static constexpr
const char* PROP_BEFORECHANGE =
"beforeChange";
123 static constexpr
const char* PROP_IMPLEMENTS =
"implements";
124 static constexpr
const char* PROP_NOPACK =
"nopack";
125 static constexpr
const char* PROP_OWNED =
"owned";
126 static constexpr
const char* PROP_EDITABLE =
"editable";
127 static constexpr
const char* PROP_REPLACEABLE =
"replaceable";
128 static constexpr
const char* PROP_RESIZABLE =
"resizable";
129 static constexpr
const char* PROP_READONLY =
"readonly";
130 static constexpr
const char* PROP_OVERRIDEGETTER =
"overrideGetter";
131 static constexpr
const char* PROP_OVERRIDESETTER =
"overrideSetter";
132 static constexpr
const char* PROP_ENUM =
"enum";
133 static constexpr
const char* PROP_SIZETYPE =
"sizeType";
134 static constexpr
const char* PROP_SETTER =
"setter";
135 static constexpr
const char* PROP_GETTER =
"getter";
136 static constexpr
const char* PROP_GETTERFORUPDATE =
"getterForUpdate";
137 static constexpr
const char* PROP_SIZESETTER =
"sizeSetter";
138 static constexpr
const char* PROP_SIZEGETTER =
"sizeGetter";
139 static constexpr
const char* PROP_INSERTER =
"inserter";
140 static constexpr
const char* PROP_APPENDER =
"appender";
141 static constexpr
const char* PROP_ERASER =
"eraser";
142 static constexpr
const char* PROP_REMOVER =
"remover";
143 static constexpr
const char* PROP_ALLOWREPLACE =
"allowReplace";
144 static constexpr
const char* PROP_STR =
"str";
145 static constexpr
const char* PROP_CUSTOMIZE =
"customize";
146 static constexpr
const char* PROP_OVERWRITEPREVIOUSDEFINITION =
"overwritePreviousDefinition";
147 static constexpr
const char* PROP_CUSTOM =
"custom";
148 static constexpr
const char* PROP_CUSTOMIMPL =
"customImpl";
Options for MsgCompiler.
Definition: msgcompileroptions.h:32
Definition: msgtypetable.h:64
static const StringSet RESERVED_WORDS
Definition: msganalyzer.h:53
Definition: msgtypetable.h:162
MsgTypeTable::EnumItem EnumItem
Definition: msganalyzer.h:50
MsgTypeTable::FieldInfo FieldInfo
Definition: msganalyzer.h:48
#define NEDXML_API
Definition: nedxmldefs.h:31
std::vector< std::string > StringVector
Definition: msganalyzer.h:45
bool hasProperty(const Properties &p, const char *name)
Definition: msganalyzer.h:71
Definition: astbuilder.h:25
Definition: msgtypetable.h:153
Definition: msgtypetable.h:39
Definition: msgtypetable.h:44
MsgTypeTable::Properties Properties
Definition: msganalyzer.h:47
std::set< std::string > StringSet
Definition: msganalyzer.h:44
MsgTypeTable::Property Property
Definition: msganalyzer.h:46
MsgTypeTable::ClassInfo ClassInfo
Definition: msganalyzer.h:49
~MsgAnalyzer()
Definition: msganalyzer.h:82
const MsgCompilerOptions & opts
Definition: msganalyzer.h:58
MsgTypeTable * typeTable
Definition: msganalyzer.h:57
const Property * get(const std::string &name, const std::string &index="") const
Part of the message compiler. Produces ClassInfo objects from the ASTNode tree. Assumes object tree h...
Definition: msganalyzer.h:41
Definition: errorstore.h:37
Definition: msgtypetable.h:76
ErrorStore * errors
Definition: msganalyzer.h:56