Question
Write matchers using C++ regex to match (and test the match) forC++ - style doubles and identifiers Using the template below. //Begin of code //
Write matchers using C++ regex to match (and test the match) forC++ - style doubles and identifiers Using the template below.
//Begin of code
// Goal - match C++ decimal (base 10) integer strings.
// Digit = r(0|..|9)
// PositiveDigit=r(1|..|9)
// Decimal = r(0|(PositiveDigit((|')Digit)*))
#include "gtest/gtest.h"
#include
#include
using namespace std;
bool IsDecimal(const std::string &candidate) {
regexmatcher("(-?(0|([1-9]('?[0-9])*))|((0|([1-9]('?[0-9])*))))");
return regex_match(candidate,matcher);
}
bool IsDouble(const std::string &candidate) {
return true;
}
bool IsIdentifier(const std::string &candidate) {
return true;
}
TEST(RegEx,DecimalInteger) {
ASSERT_TRUE(IsDecimal("0"));
ASSERT_TRUE(IsDecimal("1"));
ASSERT_TRUE(IsDecimal("1'2'3"));
ASSERT_TRUE(IsDecimal("1'000'000"));
ASSERT_TRUE(IsDecimal("-0"));
ASSERT_TRUE(IsDecimal("-1"));
ASSERT_TRUE(IsDecimal("-1'2'3"));
ASSERT_TRUE(IsDecimal("-1'000'000"));
ASSERT_FALSE(IsDecimal("-"));
ASSERT_FALSE(IsDecimal("00"));
ASSERT_FALSE(IsDecimal("00"));
ASSERT_FALSE(IsDecimal("0001"));
ASSERT_FALSE(IsDecimal("1''000''000"));
ASSERT_FALSE(IsDecimal(".20"));
ASSERT_FALSE(IsDecimal("20."));
}
TEST(RegEx,Double) {
}
TEST(RegEx,Identifier) {
}
#end of code
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started