You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.6 KiB
54 lines
1.6 KiB
#ifndef QMK_PARSER_H
|
|
#define QMK_PARSER_H
|
|
|
|
#include <qstringlist.h>
|
|
#include <qvector.h>
|
|
|
|
class qmk_parser
|
|
{
|
|
public:
|
|
qmk_parser();
|
|
~qmk_parser();
|
|
|
|
// Parsing of all needed qmk files. If parsing finishes processing without errors, returns zero-size str, else returns error description
|
|
QString parseFiles(QString mainLayout, QString revLayout, QString mainConfig, QString revConfig, QString keymapConfig, QString keymap, QString keycodes, bool ignoreUndefinedKeys = true);
|
|
|
|
QStringList findMacro(QString src);
|
|
QStringList parseMacro(QString macro);
|
|
|
|
QString deleteCommentsAndStrings(QString src, bool deleteStrings = true);
|
|
|
|
QString findExpression(QString src, QString expression);
|
|
|
|
QStringList findEnums(QString src);
|
|
|
|
QString getEnumName(QString enumSrc);
|
|
QVector<QVector<QString>> getEnumValues(QString src); // val 0 - name, val 1 - number in text format
|
|
|
|
QString setMacroToExpression(QString expression, QVector<QStringList> macroList);
|
|
|
|
QVector<QString> parseOneDimArr(QString arr);
|
|
QVector<QVector<QString>> parseTwoDimArr(QString arr);
|
|
QVector<QVector<QVector<QString>>> parseThreeDimArr(QString arr);
|
|
|
|
int strToNum(QString s);
|
|
|
|
QVector<QString> getColumns();
|
|
QVector<QString> getRows();
|
|
QVector<QVector<int>> getMatrix();
|
|
QVector<QVector<int>> getFnMatrix();
|
|
int getDiodeDirection();
|
|
|
|
private:
|
|
|
|
bool m_isError;
|
|
QVector<QString> m_Columns;
|
|
QVector<QString> m_Rows;
|
|
int m_diodeDirection;
|
|
QVector<QVector<int> > m_Matrix;
|
|
QVector<QVector<int> > m_FnMatrix;
|
|
|
|
};
|
|
|
|
#endif // QMK_PARSER_H
|