okteta
osdparser.cpp
Go to the documentation of this file.
121 QScopedPointer<ScriptLogger> rootLogger(new ScriptLogger); //only needed if we get an error right now
122 rootLogger->setLogToStdOut(true); //we cannot get our messages into the script console, so do this instead
153 QScopedPointer<ScriptLogger> rootLogger(new ScriptLogger()); //only needed in we get an error right now
171 for (QDomElement elem = rootElem.firstChildElement(); !elem.isNull(); elem = elem.nextSiblingElement())
212 QVector<EnumDefinition::Ptr> OsdParser::parseEnums(const QDomElement& rootElem, ScriptLogger* logger)
215 for (QDomElement elem = rootElem.firstChildElement(); !elem.isNull(); elem = elem.nextSiblingElement())
266 ArrayDataInformation* OsdParser::arrayFromXML(const QDomElement& xmlElem, const OsdParserInfo& info)
275 //must wrap in parentheses, cannot just evaluate. See https://bugreports.qt-project.org/browse/QTBUG-5757
284 //if that doesn't exist use the first child element as the type, but only if there is only one child
306 DataInformation* OsdParser::parseChildElement(const QDomElement& xmlElem, const OsdParserInfo& info, const QString& name)
317 DataInformation* OsdParser::parseType(const QDomElement& xmlElem, const OsdParserInfo& info, const QString& name)
348 PointerDataInformation* OsdParser::pointerFromXML(const QDomElement& xmlElem, const OsdParserInfo& info)
355 //if that doesn't exist use the first child element as the type, but only if there is only one child
377 PrimitiveDataInformation* OsdParser::primitiveFromXML(const QDomElement& xmlElem, const OsdParserInfo& info)
394 inline UnionDataInformation* OsdParser::unionFromXML(const QDomElement& xmlElem, const OsdParserInfo& info)
401 inline StructureDataInformation* OsdParser::structFromXML(const QDomElement& xmlElem, const OsdParserInfo& info)
483 cpd.updateFunc = ParserUtils::functionSafeEval(info.engine, readProperty(elem, PROPERTY_UPDATE_FUNC));
484 cpd.validationFunc = ParserUtils::functionSafeEval(info.engine, readProperty(elem, PROPERTY_VALIDATION_FUNC));
485 cpd.toStringFunc = ParserUtils::functionSafeEval(info.engine, readProperty(elem, PROPERTY_TO_STRING_FUNC));
508 QString OsdParser::readProperty(const QDomElement& elem, const QString& property, const QString& defaultVal)
526 QDomElement defaultChildren = xmlElem.firstChildElement(PROPERTY_DEFAULT_CHILDREN).firstChildElement();
535 info.error() << "Missing <alternatives> element, tagged union cannot exist without at least one alternative";
538 for (QDomElement elem = alternatives.firstChildElement(); !elem.isNull(); elem = elem.nextSiblingElement())
548 alt.fields = QSharedPointer<ChildrenParser>(new OsdChildrenParser(info, elem.firstChildElement()));
596 SingleElementOsdChildrenParser::SingleElementOsdChildrenParser(const OsdParserInfo& info, QDomElement element)
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
bool commonInitialization(DataInformation *data, const CommonParsedData &pd)
Definition: datainformationfactory.cpp:300
Definition: osdparser.h:100
Definition: scriptlogger.h:94
const QString NAME_POINTER_VALUE_TYPE
Definition: parserutils.h:168
StringDataInformation * newString(const StringParsedData &pd)
Definition: datainformationfactory.cpp:249
Definition: dummydatainformation.h:30
const QString PROPERTY_MAX_BYTE_COUNT
Definition: parserutils.h:143
virtual QVector< TopLevelDataInformation * > parseStructures() const
Definition: osdparser.cpp:148
PointerDataInformation * newPointer(const PointerParsedData &pd)
Definition: datainformationfactory.cpp:346
FlagDataInformation * newFlags(const EnumParsedData &pd)
Definition: datainformationfactory.cpp:198
QScriptValue functionSafeEval(QScriptEngine *engine, const QString &str)
This essentially calls engine->evaluate(str), but ensures it can be a function (QTBUG-5757) ...
Definition: parserutils.cpp:184
OsdChildrenParser(const OsdParserInfo &info, QDomElement firstChild)
Definition: osdparser.cpp:557
Holds a number that was converted either from a QScriptValue or a QString.
Definition: parserutils.h:84
Definition: enumdatainformation.h:29
QScriptValue selectIf
Definition: datainformationfactory.h:112
static QPair< AllPrimitiveTypes, QString > convertToEnumEntry(const QString &name, const QVariant &value, const LoggerWithContext &logger, PrimitiveDataType type)
Definition: enumdefinition.cpp:59
const QString PROPERTY_CUSTOM_TYPE_NAME
Definition: parserutils.h:124
Definition: scriptvalueconverter.h:30
TaggedUnionDataInformation * newTaggedUnion(const TaggedUnionParsedData &pd)
Definition: datainformationfactory.cpp:373
const QString PROPERTY_TO_STRING_FUNC
Definition: parserutils.h:122
const QString PROPERTY_DEFAULT_LOCK_OFFSET
Definition: parserutils.h:112
QStringList messages(LogLevel minLevel=LogInfo) const
Definition: scriptlogger.cpp:135
static DataInformation * parseElement(const QDomElement &node, const OsdParserInfo &info)
Definition: osdparser.cpp:440
ParsedNumber< int > intFromString(const QString &str)
If string starts with 0x, the remainder is interpreted as a hexadecimal (unsigned) number otherwise i...
Definition: parserutils.cpp:27
QSharedPointer< ChildrenParser > fields
Definition: datainformationfactory.h:113
A class holding the data of a struct for Okteta.
Definition: taggeduniondatainformation.h:31
Definition: datainformationfactory.h:71
Definition: arraydatainformation.h:36
Definition: primitivedatatype.h:54
Definition: datainformationfactory.h:56
Definition: datainformationfactory.h:44
virtual ~SingleElementOsdChildrenParser()
Definition: osdparser.cpp:603
PrimitiveDataInformation * newPrimitive(const PrimitiveParsedData &pd)
Definition: datainformationfactory.cpp:68
QScriptEngine * newEngine()
Definition: scriptengineinitializer.cpp:106
UnionDataInformation * newUnion(const StructOrUnionParsedData &pd)
Definition: datainformationfactory.cpp:290
PrimitiveDataType typeStringToType(const QString &string, const LoggerWithContext &logger)
Converts typeStr to a PrimitiveDataType case-insensitively.
Definition: primitivefactory.cpp:30
EnumDataInformation * newEnum(const EnumParsedData &pd)
Definition: datainformationfactory.cpp:193
A class holding the data of a union for Okteta.
Definition: uniondatainformation.h:28
PrimitiveDataInformation * newInstance(const QString &name, PrimitiveDataType type, const LoggerWithContext &logger, DataInformation *parent)
Definition: primitivefactory.cpp:66
ParsedNumber< quint64 > uint64FromString(const QString &str)
Definition: parserutils.cpp:56
Definition: osdparser.h:112
ParsedNumber< uint > uintFromString(const QString &str)
Definition: parserutils.cpp:45
void setDefaultLockOffset(Okteta::Address offset)
Definition: topleveldatainformation.cpp:217
const QString PROPERTY_VALIDATION_FUNC
Definition: parserutils.h:121
Definition: datainformationfactory.h:64
virtual void setParent(DataInformation *newParent)
Definition: osdparser.cpp:591
Definition: enumdefinition.h:37
const QString mPluginName
Definition: abstractstructureparser.h:45
OsdParser(const QString &pluginName, const QString &absolutePath)
construct a parser which opens parses absolutePath
Definition: osdparser.cpp:48
const QString mAbsolutePath
Definition: abstractstructureparser.h:46
StructureDataInformation * newStruct(const StructOrUnionParsedData &pd)
Definition: datainformationfactory.cpp:295
virtual QStringList parseStructureNames() const
Definition: osdparser.cpp:118
Definition: datainformationfactory.h:101
DataInformation::DataInformationEndianess byteOrderFromString(const QString &string, const LoggerWithContext &logger)
Definition: parserutils.cpp:67
Definition: osdparser.h:44
ArrayDataInformation * newArray(const ArrayParsedData &pd)
Definition: datainformationfactory.cpp:203
const QString PROPERTY_MAX_CHAR_COUNT
Definition: parserutils.h:142
const QString PROPERTY_ALTERNATIVES
Definition: parserutils.h:151
A base class for all primitive data elements (e.g.
Definition: primitivedatainformation.h:34
Definition: datainformationfactory.h:93
DataInformation::DataInformationEndianess endianess
Definition: datainformationfactory.h:51
Definition: datainformationfactory.h:82
Definition: stringdatainformation.h:39
const QString PROPERTY_TERMINATED_BY
Definition: parserutils.h:144
SingleElementOsdChildrenParser(const OsdParserInfo &info, QDomElement element)
Definition: osdparser.cpp:596
A class holding the data of a struct for Okteta.
Definition: structuredatainformation.h:28
const QString PROPERTY_DEFAULT_CHILDREN
Definition: parserutils.h:152
AbstractBitfieldDataInformation * newBitfield(const BitfieldParsedData &pd)
Definition: datainformationfactory.cpp:32
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:08 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:08 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.