From 4b0d30fbc4769422617966fa7e27c025867a6828 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 28 Aug 2024 14:42:39 -0400 Subject: [PATCH 1/6] Initial enum support --- include/core/parseutil.h | 9 +-- src/core/parseutil.cpp | 139 ++++++++++++++++++++++++--------------- 2 files changed, 90 insertions(+), 58 deletions(-) diff --git a/include/core/parseutil.h b/include/core/parseutil.h index 9e00087e8..271d1247b 100644 --- a/include/core/parseutil.h +++ b/include/core/parseutil.h @@ -54,9 +54,9 @@ class ParseUtil QString readCIncbin(const QString &text, const QString &label); QMap readCIncbinMulti(const QString &filepath); QStringList readCIncbinArray(const QString &filename, const QString &label); - QMap readCDefinesByPrefix(const QString &filename, QStringList prefixes); + QMap readCDefinesByPrefix(const QString &filename, QStringList searchText); QMap readCDefinesByName(const QString &filename, QStringList names); - QStringList readCDefineNames(const QString&, const QStringList&); + QStringList readCDefineNames(const QString&, QStringList searchText); QMap> readCStructs(const QString &, const QString & = "", const QHash = { }); QList getLabelMacros(const QList&, const QString&); QStringList getLabelValues(const QList&, const QString&); @@ -97,8 +97,9 @@ class ParseUtil void recordErrors(const QStringList &errors); void logRecordedErrors(); QString createErrorMessage(const QString &message, const QString &expression); - QString readCDefinesFile(const QString &filename); - QMap readCDefines(const QString &filename, const QStringList &searchText, bool fullMatch); + QMap readCDefineExpressions(const QString &filename); + QMap filterCDefineExpressions(const QMap &allExpressions, QStringList searchText, bool fullMatch); + QMap evaluateCDefines(const QString &filename, const QStringList &searchText, bool fullMatch); static const QRegularExpression re_incScriptLabel; static const QRegularExpression re_globalIncScriptLabel; diff --git a/src/core/parseutil.cpp b/src/core/parseutil.cpp index c5d096355..f1d702195 100644 --- a/src/core/parseutil.cpp +++ b/src/core/parseutil.cpp @@ -15,6 +15,22 @@ const QRegularExpression ParseUtil::re_poryScriptLabel("\\b(script)(\\((global|l const QRegularExpression ParseUtil::re_globalPoryScriptLabel("\\b(script)(\\((global)\\))?\\s*\\b(?