Commit graph

3357 commits

Author SHA1 Message Date
Paul Beckingham
28ed6ae74d Task
- Now recognizeѕ '', "" and <blank> as examples of an attribute values that
  should be cleared.
2014-06-27 19:09:26 -04:00
Paul Beckingham
74b4684d40 Duration
- Now distinguishes between duration that require prefix quantities ('days') and
  those that do not ('annual').
2014-06-27 19:08:29 -04:00
Paul Beckingham
92f74fc664 Task
- Quotes arguments for readability.
2014-06-27 19:07:39 -04:00
Paul Beckingham
46c9ddc91f Parser
- Now tags ORIGINAL arguments that were quoted or escaped with QUOTED.
2014-06-27 19:06:35 -04:00
Paul Beckingham
9dd7acac0b Task
- Simplified dependency modification hnadling.
2014-06-26 23:55:50 -04:00
Paul Beckingham
e688176310 Parser
- Plain arguments may only be upgraded to search patterns if they cannot be
  split into multiple lexemes, and do not canonicalize to an attribute name.
2014-06-25 22:04:56 -04:00
Paul Beckingham
8bad1591dc Parser
- Rewrote ::findIdSequence to be more exacting in the definition of an ID.
  The previous implementation considered '1.2' to be an ID.
2014-06-25 21:42:00 -04:00
Paul Beckingham
525f3cda75 TW-266
- TW-266 Allow project auto-completion to search completed tasks (thanks to
         Kosta Harlan).
2014-06-24 23:19:50 -04:00
Paul Beckingham
db6cecd2f3 DOM
- When attributes are accessed via DOM references, the value extracted is now
  imbued with the attribute type.
2014-06-24 22:16:57 -04:00
Paul Beckingham
f72aa7b02c Eval
- Updated Eval runtime diagnostics, so that all stack I/O is shown during
  evaluation.
2014-06-24 22:15:59 -04:00
Paul Beckingham
1ccbb3b43a Task
- Added ::get_float method for accessing numeric attributes.
2014-06-24 22:14:46 -04:00
Paul Beckingham
db0a56e4f5 Variant
- Improved copy ctor.
2014-06-18 23:50:24 -04:00
Paul Beckingham
008ba6ecab Lexer
- Implmented boundary detection hints.
2014-06-18 17:45:25 -04:00
Paul Beckingham
13bbcba3f9 Variant
- ::operator== uses a caseless compare for the status attribute.
2014-06-17 01:10:16 -04:00
Paul Beckingham
2a3c5e59c7 Variant
- Corrected handling for ::operator_partial when one of the operands is
  trivial.
2014-06-17 01:00:51 -04:00
Paul Beckingham
8ec5533d39 Parser
- Removed unused constant.
2014-06-16 19:50:00 -04:00
Paul Beckingham
6a4a046b1a Variant
- Updated operator%= to handle trivial values.
2014-06-16 18:44:37 -04:00
Paul Beckingham
74af53cb4f Variant
- Updated operator/= to handle trivial values.
2014-06-16 18:43:44 -04:00
Paul Beckingham
a7cc2a594a Variant
- Updated operator*= to handle trivial values.
2014-06-16 18:43:11 -04:00
Paul Beckingham
2a552d4fc0 Variant
- Updated operator+= to handle trivial values.
2014-06-16 18:42:53 -04:00
Paul Beckingham
5dbbca882f Variant
- Updated operator-= to handle trivial values.
2014-06-16 18:42:31 -04:00
Paul Beckingham
e0bca6c4ad Variant
- Updated operator_partial to handle trivial values.
2014-06-16 18:42:11 -04:00
Paul Beckingham
c1a9e1e452 Variant
- Updated operator== to handle trivial values.
2014-06-16 18:41:36 -04:00
Paul Beckingham
5e9229db76 Variant
- Updated operator>= to handle trivial values.
2014-06-16 18:41:04 -04:00
Paul Beckingham
fc3688ea70 Variant
- Updated operator> to handle trivial values.
2014-06-16 18:40:34 -04:00
Paul Beckingham
78a748e865 Variant
- Updated operator<= to handle trivial values.
2014-06-16 18:40:00 -04:00
Paul Beckingham
7484b5a22f Variant
- Updated operator< to handle trivial values.
2014-06-16 18:38:43 -04:00
Paul Beckingham
8e16a3e0e4 Variant
- Implemented ::trivial to faclitate operator shortcuts.
2014-06-16 17:25:48 -04:00
Paul Beckingham
ef3deaad4a Task
- When a duration fails to parse during ::modify, it must raise an exception,
  and not silently skip the attribute.
2014-06-15 23:34:43 -04:00
Paul Beckingham
64c9cbe943 Task
- Å duration field is stored in raw form, but must still be parseable.
2014-06-15 23:21:54 -04:00
Paul Beckingham
ffb201a068 Parser
- Pruned the unnecessary filter sub branches off the parse tree for branches
  tagged with MODIFICATION.
2014-06-15 23:04:29 -04:00
Paul Beckingham
b9fd2560eb Parser
- Removed warning about compounded plain args, which are now handled early in
  Parser::initialize, where new args are immediately lexed.
2014-06-15 22:59:14 -04:00
Paul Beckingham
d1f5020fab Task
- Improved implementation of is_duemonth and is_dueweek.
2014-06-15 22:37:56 -04:00
Paul Beckingham
3116ddcd6d Dates
- Fixed problem with eoy, where is was YYYY-12-31T00:00:00, which is
  24 hours earlier than actual eoy. Other 'eo*' names were also wrong.
  So much for unit tests.
2014-06-15 22:34:16 -04:00
Paul Beckingham
cfb7fdc987 Date
- Uses mk_wcwidth to calculate the printed width of a character in a date
  format that is not recognized, instead of simply assuming '1'.
2014-06-15 22:31:13 -04:00
Paul Beckingham
ea2405330f Date
- Removed ::isRelativeDate and instead used namedDates. Which is better.
2014-06-15 22:28:46 -04:00
Paul Beckingham
877c6fae9e Dates
- 'eom' and 'eocm' are not on YYYY-MM-{28,30,31}T00:00:00, they are
  one day later.
2014-06-15 19:14:24 -04:00
Paul Beckingham
20de57e87c Dates
- 'eoy' is not YYYY-12-31T00:00:00, it's one day later.
2014-06-15 19:13:48 -04:00
Paul Beckingham
d2685a8212 Task
- If the a numeric attribute is modified with a result that is not readily
  convertible to a numeric value, then this is an error.
2014-06-15 10:15:23 -04:00
Paul Beckingham
9d727a73d2 ColUrgency
- Now uses the standard type 'numeric', instead of 'number'.
2014-06-15 09:49:26 -04:00
Paul Beckingham
6b6e9a6b15 ColIMask
- Now uses the standard type 'numeric', instead of 'number'.
2014-06-15 09:48:54 -04:00
Paul Beckingham
d557c20782 ColID
- Now uses the standard type 'numeric', instead of 'number'.
2014-06-15 09:48:05 -04:00
Paul Beckingham
65890bc8d4 Task
- All attribute types (number, string, date, duration) are ѕpecifically
  handled, with no default cases.
2014-06-15 09:36:35 -04:00
Paul Beckingham
518f56b499 Task
- Durations are now stored as-is, with no evaluation.
2014-06-15 09:34:21 -04:00
Paul Beckingham
b7d668fb7d Eval
- Raises an exception if an expression evaluation yields an unexpected
  stack size at the end. This indicates that an expression like 'one two'
  was evaluated. Note that string field updates require evaluation, but
  this case occurs frequently.
2014-06-15 09:32:17 -04:00
Paul Beckingham
a2936c045c Lexer
- Now recognized the exact inequality operator !==.
2014-06-14 16:03:07 -04:00
Paul Beckingham
9318dced5a Eval
- Eval maps '!==' to Variant::operator!=, '!=' to Variant::operator_nopartial,
  '==' to Variant::operator== and '=' to Variant::operator_partial.
2014-06-14 15:59:31 -04:00
Paul Beckingham
dbe38f2747 Parser
- ::findOperator removes unnecessarily lexed sub-branches.
2014-06-14 15:24:34 -04:00
Paul Beckingham
da1dbb5666 Parser
- ::findUUIDList removes unnecessarily lexed sub-branches.
2014-06-14 15:24:23 -04:00
Paul Beckingham
5199554811 Parser
- ::findIdSequence removes unnecessarily lexed sub-branches.
2014-06-14 15:24:11 -04:00