32 const std::string
Function::Double =
"(-?[0-9]+\\.?[0-9]*([Ee][+-]?[0-9]+)?)";
40 std::cout <<
"parsing failed here:" << std::string(it, end) << std::endl;
51 std::string str(it, end);
52 if (!std::regex_match(str, what, functionCall))
return false;
54 std::string identifier = what[1];
55 std::string arguments = what[2];
56 unsigned int shift = identifier.size() + 1;
58 if (identifier ==
"rectangle") {
64 }
else if (identifier ==
"ellipse") {
70 }
else if (identifier ==
"polygon") {
76 }
else if (identifier ==
"mask") {
81 }
else if (identifier ==
"repeat") {
87 }
else if (identifier ==
"rotate") {
93 }
else if (identifier ==
"translate") {
99 }
else if (identifier ==
"shear") {
105 }
else if (identifier ==
"union") {
111 }
else if (identifier ==
"difference") {
117 }
else if (identifier ==
"symmetric_difference") {
123 }
else if (identifier ==
"intersection") {
std::string::iterator iterator
bool parse(std::string str, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *fun)
static const std::string FCall
static const std::string Double
static const std::string UDouble
static bool parse(iterator &it, const iterator &end, Function *&fun)
static const std::string UInt
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)
static bool parse_detail(iterator &it, const iterator &end, Function *&fun)