mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-21 07:43:08 +02:00
A3
- Removed obsolete ::expand method.
This commit is contained in:
parent
1a75039cf7
commit
543651055f
2 changed files with 0 additions and 193 deletions
192
src/A3.cpp
192
src/A3.cpp
|
@ -759,198 +759,6 @@ const A3 A3::tokenize (const A3& input) const
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
const A3 A3::expand (const A3& input) const
|
|
||||||
{
|
|
||||||
A3 expanded;
|
|
||||||
|
|
||||||
std::vector <Arg>::const_iterator arg;
|
|
||||||
std::vector <Arg>::const_iterator previous = input.begin ();
|
|
||||||
for (arg = input.begin (); arg != input.end (); ++arg)
|
|
||||||
{
|
|
||||||
// When expanded, the value retains the original type.
|
|
||||||
Arg::type implied = arg->_type;
|
|
||||||
|
|
||||||
// name:value --> name = value
|
|
||||||
if (arg->_category == Arg::cat_attr)
|
|
||||||
{
|
|
||||||
std::string name;
|
|
||||||
std::string value;
|
|
||||||
A3::extract_attr (arg->_raw, name, value);
|
|
||||||
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("=", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, implied, Arg::cat_literal));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.mod:value --> name <op sub mod> value
|
|
||||||
else if (arg->_category == Arg::cat_attmod)
|
|
||||||
{
|
|
||||||
std::string name;
|
|
||||||
std::string mod;
|
|
||||||
std::string value;
|
|
||||||
std::string sense;
|
|
||||||
extract_attmod (arg->_raw, name, mod, value, sense);
|
|
||||||
|
|
||||||
// name.before:value --> name < value
|
|
||||||
if (mod == "before" || mod == "under" || mod == "below")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("<", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, implied, Arg::cat_literal));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.after:value --> name > value
|
|
||||||
else if (mod == "after" || mod == "over" || mod == "above")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg (">", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, implied, Arg::cat_literal));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.none: --> name == ""
|
|
||||||
else if (mod == "none")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("=", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg ("", implied, Arg::cat_none));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.any: --> name != ""
|
|
||||||
else if (mod == "any")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("!=", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg ("", implied, Arg::cat_none));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.is:value --> name = value
|
|
||||||
else if (mod == "is" || mod == "equals")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("=", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, implied, Arg::cat_none));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.isnt:value --> name != value
|
|
||||||
else if (mod == "isnt" || mod == "not")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("!=", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, implied, Arg::cat_none));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.has:value --> name ~ value
|
|
||||||
else if (mod == "has" || mod == "contains")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_rx));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.hasnt:value --> name !~ value
|
|
||||||
else if (mod == "hasnt")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("!~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_rx));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.startswith:value --> name ~ ^value
|
|
||||||
else if (mod == "startswith" || mod == "left")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg ("^" + value, Arg::type_string, Arg::cat_rx));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.endswith:value --> name ~ value$
|
|
||||||
else if (mod == "endswith" || mod == "right")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value + "$", Arg::type_string, Arg::cat_rx));
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.word:value --> name ~ \bvalue\b
|
|
||||||
else if (mod == "word")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
#ifdef DARWIN
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_literal));
|
|
||||||
#else
|
|
||||||
#ifdef SOLARIS
|
|
||||||
expanded.push_back (Arg ("\\<" + value + "\\>", Arg::type_string, Arg::cat_rx));
|
|
||||||
#else
|
|
||||||
expanded.push_back (Arg ("\\b" + value + "\\b", Arg::type_string, Arg::cat_rx));
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// name.noword:value --> name !~ \bvalue\n
|
|
||||||
else if (mod == "noword")
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg (name, Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("!~", Arg::cat_op));
|
|
||||||
#ifdef DARWIN
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_literal));
|
|
||||||
#else
|
|
||||||
#ifdef SOLARIS
|
|
||||||
expanded.push_back (Arg ("\\<" + value + "\\>", Arg::type_string, Arg::cat_rx));
|
|
||||||
#else
|
|
||||||
expanded.push_back (Arg ("\\b" + value + "\\b", Arg::type_string, Arg::cat_rx));
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
throw format (STRING_A3_UNKNOWN_ATTMOD, mod);
|
|
||||||
}
|
|
||||||
|
|
||||||
// [+-]value --> tags _hastag_/_notag_ value
|
|
||||||
else if (arg->_category == Arg::cat_tag)
|
|
||||||
{
|
|
||||||
char type;
|
|
||||||
std::string value;
|
|
||||||
extract_tag (arg->_raw, type, value);
|
|
||||||
|
|
||||||
expanded.push_back (Arg ("tags", Arg::type_string, Arg::cat_dom_));
|
|
||||||
expanded.push_back (Arg (type == '+' ? "_hastag_" : "_notag_", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_literal));
|
|
||||||
}
|
|
||||||
|
|
||||||
// word --> description ~ word
|
|
||||||
// Note: use of previous prevents desc~foo --> desc~desc~foo
|
|
||||||
else if (arg->_category == Arg::cat_literal &&
|
|
||||||
previous->_category != Arg::cat_op)
|
|
||||||
{
|
|
||||||
expanded.push_back (Arg ("description", Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (arg->_raw, Arg::type_string, Arg::cat_literal));
|
|
||||||
}
|
|
||||||
|
|
||||||
// /pattern/ --> description ~ pattern
|
|
||||||
else if (arg->_category == Arg::cat_pattern)
|
|
||||||
{
|
|
||||||
std::string value;
|
|
||||||
extract_pattern (arg->_raw, value);
|
|
||||||
|
|
||||||
expanded.push_back (Arg ("description", Arg::type_string, Arg::cat_dom));
|
|
||||||
expanded.push_back (Arg ("~", Arg::cat_op));
|
|
||||||
expanded.push_back (Arg (value, Arg::type_string, Arg::cat_rx));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Default --> preserve
|
|
||||||
else
|
|
||||||
expanded.push_back (*arg);
|
|
||||||
|
|
||||||
previous = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
expanded.dump ("A3::expand");
|
|
||||||
return expanded;
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Convert: 1-3,5 7 92bea814-2e3f-487b-92a1-3286dd1a7eda
|
// Convert: 1-3,5 7 92bea814-2e3f-487b-92a1-3286dd1a7eda
|
||||||
// To: (id=1 or id=2 or id=3 or id=5 or id=7 or
|
// To: (id=1 or id=2 or id=3 or id=5 or id=7 or
|
||||||
|
|
1
src/A3.h
1
src/A3.h
|
@ -62,7 +62,6 @@ public:
|
||||||
const A3 extract_modifications () const;
|
const A3 extract_modifications () const;
|
||||||
|
|
||||||
const A3 tokenize (const A3&) const;
|
const A3 tokenize (const A3&) const;
|
||||||
const A3 expand (const A3&) const;
|
|
||||||
const A3 sequence (const A3&) const;
|
const A3 sequence (const A3&) const;
|
||||||
const A3 postfix (const A3&) const;
|
const A3 postfix (const A3&) const;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue