@@ -38,6 +38,13 @@ namespace cucumber_cpp::library::cucumber_expression
3838 return str;
3939 };
4040 }
41+
42+ const std::string integerNegativeRegex{ R"__( -?\d+)__" };
43+ const std::string integerPositiveRegex{ R"__( \d+)__" };
44+ const std::string floatRegex{ R"__( (?=.*\d.*)[-+]?\d*(?:\.(?=\d.*))?\d*(?:\d+[E][+-]?\d+)?)__" };
45+ const std::string stringDoubleRegex{ R"__( "([^\"\\]*(\\.[^\"\\]*)*)")__" };
46+ const std::string stringSingleRegex{ R"__( '([^'\\]*(\\.[^'\\]*)*)')__" };
47+ const std::string wordRegex{ R"__( [^\s]+)__" };
4148 }
4249
4350 std::smatch::const_iterator MatchRange::begin () const
@@ -62,27 +69,20 @@ namespace cucumber_cpp::library::cucumber_expression
6269
6370 ParameterRegistry::ParameterRegistry ()
6471 {
65- const static std::string integerNegativeRegex{ R"__( -?\d+)__" };
66- const static std::string integerPositiveRegex{ R"__( \d+)__" };
67- const static std::string floatRegex{ R"__( (?=.*\d.*)[-+]?\d*(?:\.(?=\d.*))?\d*(?:\d+[E][+-]?\d+)?)__" };
68- const static std::string stringDoubleRegex{ R"__( "([^\"\\]*(\\.[^\"\\]*)*)")__" };
69- const static std::string stringSingleRegex{ R"__( '([^'\\]*(\\.[^'\\]*)*)')__" };
70- const static std::string wordRegex{ R"__( [^\s]+)__" };
71-
72- ParameterRegistry::Add (" int" , { integerNegativeRegex, integerPositiveRegex }, CreateStreamConverter<std::int32_t >());
73- ParameterRegistry::Add (" float" , { floatRegex }, CreateStreamConverter<float >());
74- ParameterRegistry::Add (" word" , { wordRegex }, CreateStreamConverter<std::string>());
75- ParameterRegistry::Add (" string" , { stringDoubleRegex, stringSingleRegex }, CreateStringConverter ());
76- ParameterRegistry::Add (" " , { " .*" }, CreateStreamConverter<std::string>());
77- ParameterRegistry::Add (" bigdecimal" , { floatRegex }, CreateStreamConverter<double >());
78- ParameterRegistry::Add (" biginteger" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int64_t >());
79- ParameterRegistry::Add (" byte" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int32_t >());
80- ParameterRegistry::Add (" short" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int32_t >());
81- ParameterRegistry::Add (" long" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int64_t >());
82- ParameterRegistry::Add (" double" , { floatRegex }, CreateStreamConverter<double >());
72+ Add (" int" , { integerNegativeRegex, integerPositiveRegex }, CreateStreamConverter<std::int32_t >());
73+ Add (" float" , { floatRegex }, CreateStreamConverter<float >());
74+ Add (" word" , { wordRegex }, CreateStreamConverter<std::string>());
75+ Add (" string" , { stringDoubleRegex, stringSingleRegex }, CreateStringConverter ());
76+ Add (" " , { " .*" }, CreateStreamConverter<std::string>());
77+ Add (" bigdecimal" , { floatRegex }, CreateStreamConverter<double >());
78+ Add (" biginteger" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int64_t >());
79+ Add (" byte" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int32_t >());
80+ Add (" short" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int32_t >());
81+ Add (" long" , { { integerNegativeRegex, integerPositiveRegex } }, CreateStreamConverter<std::int64_t >());
82+ Add (" double" , { floatRegex }, CreateStreamConverter<double >());
8383
8484 // extension
85- ParameterRegistry:: Add (" bool" , { wordRegex }, CreateStreamConverter<bool >());
85+ Add (" bool" , { wordRegex }, CreateStreamConverter<bool >());
8686 }
8787
8888 Parameter ParameterRegistry::Lookup (const std::string& name) const
0 commit comments