From 35b2ee3d70628faecc02c7546bfe16357561573c Mon Sep 17 00:00:00 2001 From: Serguei Makarov Date: Mon, 3 Jun 2013 17:04:06 -0400 Subject: [PATCH] stapregex PR15064: add remaining essential character classes This completes POSIX ERE support (ostensibly), but the chr classes are largely untested at the moment; future commits will add testcases. --- re2c-migrate/re2c-regex.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/re2c-migrate/re2c-regex.cxx b/re2c-migrate/re2c-regex.cxx index 1cc977c1a..7b34d0f92 100644 --- a/re2c-migrate/re2c-regex.cxx +++ b/re2c-migrate/re2c-regex.cxx @@ -945,17 +945,18 @@ Range * Scanner::namedChrClass(std::string name) const // static initialization of table if (namedCharacterClasses.empty()) { + // TODOXXX double-check these against the glibc source code or someplace like that? namedCharacterClasses["alpha"] = ranToRA(SubStr("A-Za-z")); namedCharacterClasses["alnum"] = ranToRA(SubStr("A-Za-z0-9")); - // TODOXXX blank - // TODOXXX cntrl + namedCharacterClasses["blank"] = ranToRA(SubStr(" \t")); + namedCharacterClasses["cntrl"] = ranToRA(SubStr("\x01-\x1F\x7F")); // TODOXXX test, include \x00 in range namedCharacterClasses["d"] = namedCharacterClasses["digit"] = ranToRA(SubStr("0-9")); namedCharacterClasses["xdigit"] = ranToRA(SubStr("0-9a-fA-F")); - // TODOXXX graph + namedCharacterClasses["graph"] = ranToRA(SubStr("\x21-\x7E")); // TODOXXX test namedCharacterClasses["l"] = namedCharacterClasses["lower"] = ranToRA(SubStr("a-z")); - // TODOXXX print - // TODOXXX punct - // TODOXXX s,space + namedCharacterClasses["print"] = ranToRA(SubStr("\x20-\x7E")); // TODOXXX test + namedCharacterClasses["punct"] = ranToRA(SubStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~")); // TODOXXX test + namedCharacterClasses["s"] = namedCharacterClasses["space"] = ranToRA(SubStr(" \t\r\n\v\f")); // TODOXXX test namedCharacterClasses["u"] = namedCharacterClasses["upper"] = ranToRA(SubStr("A-Z")); } -- 2.43.5