Expression reboot

- Implemented selective ID/UUID detection, allowing only a single
  block of consecutive ID/UUID values to be considered a sequence.
- Implemented A3::sequence to expand task IDs and UUIDs into an
  algebraic filter.
This commit is contained in:
Paul Beckingham 2011-07-25 01:10:15 -04:00
parent f86b497fa8
commit af2f44ca5a
2 changed files with 173 additions and 84 deletions

View file

@ -106,6 +106,7 @@ public:
const A3 tokenize (const A3&) const;
const A3 infix (const A3&) const;
const A3 expand (const A3&) const;
const A3 sequence (const A3&) const;
static bool is_attr (Nibbler&, std::string&);
static bool is_attmod (Nibbler&, std::string&);
@ -124,14 +125,11 @@ public:
static bool extract_attr (const std::string&, std::string&, std::string&);
static bool extract_attmod (const std::string&, std::string&, std::string&, std::string&, std::string&);
static bool extract_subst (const std::string&, std::string&, std::string&, bool&);
/*
static bool is_operator (const std::string&, char&, int&, char&);
static bool is_symbol_operator (const std::string&);
static bool extract_id (const std::string&, std::vector <int>&);
static bool extract_uuid (const std::string&, std::vector <std::string>&);
*/
static bool is_operator (const std::string&, char&, int&, char&);
void dump (const std::string&);
private: