commit dac6d100b8256a2659a88ee42642452c90e07530 parent 1314233eebd8a0f48ee7c9fbc7bde5d03499ffbd Author: RahulSannapureddy <rahul.sannapureddy@gmail.com> Date: Fri, 27 Mar 2026 18:18:27 +0530 Week 2: Add golden C++ reference regex engine (Part 3: Finalizing) Diffstat:
| M | src/golden.cpp | | | 22 | ++++++++++++++++++++++ |
1 file changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/golden.cpp b/src/golden.cpp @@ -70,3 +70,25 @@ int main(int argc, char* argv[]) { } for (const auto& testStr : testStrings) { + std::string mask = ""; + for (size_t i = 0; i < regexes.size(); ++i) { + bool matches = false; + try { + // std::regex_match does full match. + std::regex re(regexes[i]); + matches = std::regex_match(testStr, re); + } catch (const std::regex_error& e) { + // Ignore syntax mismatch + } + mask += (matches ? "1" : "0"); + } + // Reverse mask so bit 0 is on the right (Verilog convention) + std::reverse(mask.begin(), mask.end()); + outFile << mask << "\n"; + } + outFile.close(); + + std::cout << "Golden reference generated: " << outputFilename << " (" << testStrings.size() << " test cases)" << std::endl; + + return 0; +}