Commit graph

3377 commits

Author SHA1 Message Date
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
Paul Beckingham
ebaca3607d Parser
- ::findAttributeModifier removes unnecessarily lexed sub-branches.
2014-06-14 15:23:49 -04:00
Paul Beckingham
ad28d34b7e Parser
- ::findAttribute removes unnecessarily lexed sub-branches.
2014-06-14 15:23:38 -04:00
Paul Beckingham
64df32baff Parser
- ::findTag removes unnecessarily lexed sub-branches.
2014-06-14 15:22:51 -04:00
Paul Beckingham
18662b0307 Parser
- ::findSubstitution removes unnecessarily lexed sub-branches.
2014-06-14 15:22:23 -04:00
Paul Beckingham
587113e5cf Parser
- ::findPattern removes unnecessarily lexed sub-branches.
2014-06-14 15:22:06 -04:00
Paul Beckingham
91263ca28a Parser
- ::findOverrides removes unnecessarily lexed sub-branches.
2014-06-14 15:21:49 -04:00
Paul Beckingham
8ed1206f41 Parser
- ::findCommand removes unnecessarily lexed sub-branches.
2014-06-14 15:20:56 -04:00
Paul Beckingham
8f5e386ab0 Parser
- ::findTerminator removes unnecessarily lexed sub-branches.
2014-06-14 15:20:25 -04:00
Paul Beckingham
3f6ad23578 Parser
- ::findBinary removes unnecessarily lexed sub-branches.
2014-06-14 15:19:31 -04:00
Paul Beckingham
0500649992 Parser
- ::initialize now lexes all args up front.
2014-06-14 15:18:31 -04:00
Paul Beckingham
1b8671b58e Tree
- Implemented ::removeAllBranches.
2014-06-14 14:19:49 -04:00
Paul Beckingham
fb4bf3efba Tree
- After removing a branch, free the memory.
2014-06-14 14:13:34 -04:00
Paul Beckingham
7d4e166277 Lexer
- Implemented an overload of ::token_split that preserveѕ types.
2014-06-14 13:46:10 -04:00
Paul Beckingham
a892abf366 CmdCustom
- Added placeholder for problematic parenthesis injection for report filters.
2014-06-14 12:42:07 -04:00
Paul Beckingham
4bf3364bb7 DOM
- Preserves more original types.
2014-06-11 23:13:37 -04:00
Paul Beckingham
456b982ced DOM
- Updated DOM to use Variant ovjects, which carry a type which improves
  expression evaluation.
2014-06-11 21:53:00 -04:00
Paul Beckingham
9a74fbe4a9 Variant
- ISO8601 periods contain uppercase characters.
2014-06-10 23:09:41 -04:00
Paul Beckingham
bd53dd2aeb Variant
- Rewrite ::operator std::string to yield more accurate duration renditions.
2014-06-10 22:34:52 -04:00
Paul Beckingham
3727d2f09c Task
- The 'recur' attribute should be stored in raw form.
2014-06-10 20:05:50 -04:00
Paul Beckingham
2554b29041 Lexer
- Needed a shift counter, rather than a read counter, as ::token was
  lexing '-10d' into '-' and '-10d', which when evaluated is '--10d',
  which yields 10d.
2014-06-10 15:42:21 -04:00
Paul Beckingham
3c0a17c195 Task
- Removed urgency diagnostics, now that the 'info' command displays them.
2014-06-09 23:11:47 -04:00
Paul Beckingham
0a67913b48 Dates
- Fixed a loose, ill-defined, poorly constructed excuse for a detector
  of date ordinals ("1st, "22nd", "3rd" and "6th").
2014-06-09 22:19:41 -04:00
Paul Beckingham
11a4c58735 Lexer
- Factored out an invariant.
2014-06-09 18:02:34 -04:00
Paul Beckingham
05d4ac16a3 Eval
- Now prints the evaluated form, instead of the input form in debug mode, after
  successful source lookup.
2014-06-09 18:01:45 -04:00
Paul Beckingham
d0d8d5eece Duration
- Dropped support for parsing many intermediate representations. For example,
  this list:

   monthly, months, month, mnths, mths, mth, mos, mo

  is now reduced to:

    monthly, months, month, mo
2014-06-09 17:14:32 -04:00
Paul Beckingham
ff966c069c Tasksh
- Took the broken tasksh program out back behind the barn and shot it.
  It will be rewritten as a separate project, and extension.
2014-06-08 18:24:30 -04:00
Paul Beckingham
63eb32d177 Task
- Disabled ambiguous date parsing. Ain't nobody got time for that.
2014-06-08 16:20:31 -04:00
Paul Beckingham
20d4e37b40 Dates
- Corrected implementation of all named dates. There were ... issues.
2014-06-08 15:02:08 -04:00
Paul Beckingham
22f1bf709e CmdCalc
- Set ambiguity to false, thus disabling recognition of certain date forms.
2014-06-08 14:18:34 -04:00
Paul Beckingham
ddcadb35f7 Filter
- Set ambiguity to false, thus disabling recognition of certain date forms.
2014-06-08 14:17:50 -04:00