blob: 389734983d3c1d8397b73ee1ca07dba131781a1b (
plain)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | // Copyright (C) 2022 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0#ifndef PARSER_H#define PARSER_H#include <qiodevice.h>#include <qlist.h>#include <qbytearray.h>struct Function { QString className; QString functionName; QString functionParameters;};struct Point { QString name; QString parameters;};struct Replace { QString in; QString out;};struct LineNumber { qsizetype begin; qsizetype end;int line;};struct Parser {Parser(const QString &provider):m_provider(provider){}voidaddIncludeDirs(const QStringList &list){ m_includeDirs.append(list);} QString resolveInclude(const QString &filename);voidaddIncludesRecursive(const QString &filename, QStringList &includes); QStringList findEnumValues(const QString &name,const QStringList &includes);voidparseParamReplace(const QString &data, qsizetype offset,const QString &name);voidparseInstrument(const QString &data, qsizetype offset);voidparsePoint(const QString &data, qsizetype offset);voidparsePrefix(const QString &data, qsizetype offset);voidparseMetadata(const QString &data, qsizetype offset,const QStringList &includes);intlineNumber(qsizetype offset)const;voidparse(QIODevice &input,const QString &name);voidwrite(QIODevice &input)const;boolisEmpty()const{return m_functions.isEmpty() && m_points.isEmpty();} QList<Function> m_functions; QList<Point> m_points; QList<Replace> m_replaces; QList<QString> m_prefixes; QList<QString> m_metadata; QList<LineNumber> m_offsets; QList<QString> m_includeDirs; QString m_provider;};#endif// PARSER_H
|