insilmaril@432: #ifndef PARSER_H insilmaril@432: #define PARSER_H insilmaril@432: insilmaril@432: #include insilmaril@432: #include insilmaril@432: insilmaril@432: enum ErrorLevel {NoError,Warning,Aborted}; insilmaril@432: insilmaril@432: class Parser insilmaril@432: { insilmaril@432: public: insilmaril@432: Parser(); insilmaril@447: void parseAtom (QString input); insilmaril@447: QString getAtom(); insilmaril@447: QString getCommand(); insilmaril@447: QStringList getParameters(); insilmaril@432: int paramCount(); insilmaril@432: QString errorMessage(); insilmaril@432: QString errorDescription(); insilmaril@432: ErrorLevel errorLevel(); insilmaril@432: void setError (ErrorLevel level,const QString &description); insilmaril@432: void resetError(); insilmaril@432: bool checkParamCount (QList plist); insilmaril@432: bool checkParamCount (const int &index); insilmaril@432: bool checkParamIsInt (const int &index); insilmaril@432: int parInt (bool &,const uint &index); insilmaril@432: QString parString(bool &ok,const int &index); insilmaril@432: bool parBool (bool &ok, const int &index); insilmaril@432: QColor parColor (bool &ok, const int &index); insilmaril@432: insilmaril@432: void setScript (const QString &); insilmaril@432: QString getScript(); insilmaril@445: void runScript(); insilmaril@447: bool next(); insilmaril@432: insilmaril@432: insilmaril@432: private: insilmaril@447: void initParser(); insilmaril@447: void initAtom(); insilmaril@432: insilmaril@432: QString input; insilmaril@447: QString atom; insilmaril@432: QString com; insilmaril@432: QStringList paramList; insilmaril@447: int current; insilmaril@432: QString script; insilmaril@432: insilmaril@432: QString errMessage; insilmaril@432: QString errDescription; insilmaril@432: ErrorLevel errLevel; insilmaril@432: }; insilmaril@432: insilmaril@432: #endif