Commit graph

3464 commits

Author SHA1 Message Date
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
Paul Beckingham
4041639e36 Lexer
- Added downgrade from typeNumber to typeIdentifer if a number is followed by a
  letter, thus supporting "9th" as an identifier. This causes much breakage.
2014-06-08 14:15:07 -04:00
Paul Beckingham
f316413139 CmdCalc
- The 'calc' command (and only the 'calc' command) propagates the rc.debug
  setting to Eval.  This provides the means to debug expression problems.
2014-06-08 13:10:20 -04:00
Paul Beckingham
9390e17871 Documentation
- Removed obsolete task-tutorial.5 man page. Tutorials will now only
  reside online. This represents a gradual move towards single-source
  documentation.
2014-06-08 11:19:11 -04:00
Paul Beckingham
e0917f4397 Documentation
- Removed obsolete task-faq.5 man page.
2014-06-07 13:06:19 -04:00
Paul Beckingham
dcab169987 CmdDenotate
- Corrected use of command line arguments for a pattern - now uses
  modification args instead of all words.
2014-06-07 12:50:39 -04:00
Paul Beckingham
85481e3e69 Diagnostics
- Consolidated two debug lines into one, so that ViewTask::render now
  reports available width, and Context::getWidth does not.
2014-06-07 09:54:22 -04:00
Paul Beckingham
9537a91e89 Text
- Added another format overload. Time for variadics?
2014-06-07 09:52:01 -04:00
Paul Beckingham
f969bcbe59 DOM
- Extended DOM support:
    <id|uuid>.<date>.year
    <id|uuid>.<date>.month
    <id|uuid>.<date>.day
    <id|uuid>.<date>.week
    <id|uuid>.<date>.weekday
    <id|uuid>.<date>.julian
    <id|uuid>.<date>.hour
    <id|uuid>.<date>.minute
    <id|uuid>.<date>.second
    <id|uuid>.tags.<literal>
    <id|uuid>.annotations.<N>.entry
    <id|uuid>.annotations.<N>.entry.year
    <id|uuid>.annotations.<N>.entry.month
    <id|uuid>.annotations.<N>.entry.day
    <id|uuid>.annotations.<N>.entry.week
    <id|uuid>.annotations.<N>.entry.weekday
    <id|uuid>.annotations.<N>.entry.julian
    <id|uuid>.annotations.<N>.entry.hour
    <id|uuid>.annotations.<N>.entry.minute
    <id|uuid>.annotations.<N>.entry.second
    <id|uuid>.annotations.<N>.description
2014-06-06 19:43:20 -04:00
Paul Beckingham
61dab3eeb9 DOM
- Extended DOM.
2014-06-05 17:55:24 -04:00
Paul Beckingham
e6df1b38e2 DOM
- Standardized DOM interface to return success/failure, with the possibility
  of blank values. This matches the Eval::source callback interface‥
- Added more unit tests.
2014-06-04 18:57:36 -04:00
Paul Beckingham
850dbb36f0 Context
- ::clear now calls Parser::clear, which prevents the parse tree from growing
  with every shell command.
2014-06-03 01:31:25 -04:00
Paul Beckingham
512fe2f6c7 Variant
- ::operator_match and ::operator_nomatch now take a 'const Task&' argument to
  use for description/annotation matching.
- Updated unit tests.
2014-06-03 01:27:02 -04:00
Paul Beckingham
ca6940ba2e Variant
::operator_hastag now uses contextTask for resolution.
2014-06-03 01:10:58 -04:00