Commit graph

3464 commits

Author SHA1 Message Date
Paul Beckingham
ecb6adbbeb Date
- Made the buffer depletion requirement optional for dateformat and ISO date
  parsing.
2014-06-29 10:31:52 -04:00
Paul Beckingham
5150e49f67 Lexer
- Legacy date parsing should not permis ISO and epoch inputs.
2014-06-29 09:55:31 -04:00
Paul Beckingham
9b03e8f9f7 Date
- Correctly performs Nibbler save/restore for parse attempts.
2014-06-29 09:54:43 -04:00
Paul Beckingham
65f979cb4f Lexer
- Refactored (step 1) the ISO and Legacy date/duration parsing for lexer state
  machine breakout.
2014-06-29 09:36:27 -04:00
Paul Beckingham
d54afc844c Eval
- Improved formatting for diagnostics.
2014-06-28 12:40:27 -04:00
Paul Beckingham
0c4c665653 Eval
- Diagnostics now represent correct stack size.
2014-06-28 12:35:43 -04:00
Paul Beckingham
80c8daff08 Eval
- Removed Eval diagnostics that dispalyed the wrong type.
2014-06-28 12:33:22 -04:00
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