From 77a92c3204b95eaf2870605718b9099ab6ece56a Mon Sep 17 00:00:00 2001 From: nancy.liao <huihui.liao@greentest.com.cn> Date: 周一, 26 5月 2025 08:41:11 +0800 Subject: [PATCH] 匹配时添加了一个当前索引项 --- libscpi/src/externinterface.cpp | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-) diff --git a/libscpi/src/externinterface.cpp b/libscpi/src/externinterface.cpp index 15153ed..1713166 100644 --- a/libscpi/src/externinterface.cpp +++ b/libscpi/src/externinterface.cpp @@ -8,7 +8,12 @@ #include <sstream> CPatternResult* g_pattern_results = new (std::nothrow) CPatternResult(); + int g_pattern_count = 0; + +//static std::vector<std::string_view> currentCommandGroup; + +static int currentIndex; class Segment { public: @@ -221,8 +226,12 @@ } }; +char* currentPattern() +{ + return g_pattern_results[currentIndex].commandData; +} // 鍏ㄥ眬绠$悊鍑芥暟瀹炵幇 -void add_pattern_to_global(const std::vector<Segment>& segments) +void add_pattern_to_global(const char* pattern, const std::vector<Segment>& segments) { // 閲嶆柊鍒嗛厤鍐呭瓨 CPatternResult* new_results = new CPatternResult[g_pattern_count + 1]; @@ -237,7 +246,6 @@ CPatternResult& new_item = new_results[g_pattern_count]; new_item.segments_count = static_cast<int>(segments.size()); new_item.segments = new CSegment[segments.size()]; - for (size_t i = 0; i < segments.size(); ++i) { const auto& seg = segments[i]; @@ -281,14 +289,23 @@ int get_pattern_count() { return g_pattern_count; } - +void clearCurrentGroup() +{ + currentIndex = -1; + //currentCommandGroup.clear(); +} void parse_pattern_global(const char* pattern) { auto segments = PatternParser::extract_all_segments(pattern); - add_pattern_to_global(segments); + add_pattern_to_global(pattern,segments); } +void setCurrentIndex(int index) +{ + currentIndex = index; +} +//pattern_index 鍖归厤缁勭殑涓嬫爣 int match_segments_global(const char* input, int pattern_index) { if (pattern_index < 0 || pattern_index >= g_pattern_count) -- Gitblit v1.9.1