parser.h
author insilmaril
Fri, 29 Jun 2007 15:12:04 +0000
changeset 534 32b71ba642aa
parent 514 497fab7d1404
child 539 7dde64ce0577
permissions -rw-r--r--
1.8.76 Hackweek version
insilmaril@432
     1
#ifndef PARSER_H
insilmaril@432
     2
#define PARSER_H
insilmaril@432
     3
insilmaril@432
     4
#include <QColor>
insilmaril@432
     5
#include <QStringList>
insilmaril@432
     6
insilmaril@432
     7
enum ErrorLevel {NoError,Warning,Aborted};
insilmaril@432
     8
insilmaril@432
     9
class Parser
insilmaril@432
    10
{
insilmaril@432
    11
public:
insilmaril@432
    12
	Parser();
insilmaril@447
    13
	void parseAtom (QString input);
insilmaril@447
    14
	QString getAtom();
insilmaril@447
    15
	QString getCommand();
insilmaril@447
    16
	QStringList getParameters();
insilmaril@514
    17
	int parCount();
insilmaril@432
    18
	QString errorMessage();
insilmaril@432
    19
	QString errorDescription();
insilmaril@432
    20
	ErrorLevel errorLevel();
insilmaril@432
    21
	void setError (ErrorLevel level,const QString &description);
insilmaril@432
    22
	void resetError();
insilmaril@514
    23
	bool checkParCount (QList <int> plist);
insilmaril@514
    24
	bool checkParCount (const int &index);
insilmaril@514
    25
	bool checkParIsInt (const int &index);
insilmaril@432
    26
	int parInt (bool &,const uint &index);
insilmaril@432
    27
	QString parString(bool &ok,const int &index);
insilmaril@432
    28
	bool parBool (bool &ok, const int &index);
insilmaril@432
    29
	QColor parColor (bool &ok, const int &index);
insilmaril@432
    30
insilmaril@432
    31
	void setScript (const QString &);
insilmaril@432
    32
	QString getScript();
insilmaril@445
    33
	void runScript();
insilmaril@447
    34
	bool next();
insilmaril@432
    35
insilmaril@432
    36
insilmaril@432
    37
private:
insilmaril@447
    38
	void initParser();
insilmaril@447
    39
	void initAtom();
insilmaril@432
    40
insilmaril@432
    41
	QString input;
insilmaril@447
    42
	QString atom;
insilmaril@432
    43
	QString com;
insilmaril@432
    44
	QStringList paramList;
insilmaril@447
    45
	int current;
insilmaril@432
    46
	QString script;
insilmaril@432
    47
insilmaril@432
    48
	QString errMessage;
insilmaril@432
    49
	QString errDescription;
insilmaril@432
    50
	ErrorLevel errLevel;
insilmaril@432
    51
};
insilmaril@432
    52
insilmaril@432
    53
#endif