Commit graph

3607 commits

Author SHA1 Message Date
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
Paul Beckingham
56a70b00c4 Context
- No longer segfaults when ::initialize (argç, argv) is called with zero
  arguments, which is what the shell is doing.
2014-06-03 00:55:18 -04:00
Paul Beckingham
cd837a006c Task
- ::modify was not casting strings to dates for date types.
2014-06-03 00:42:21 -04:00
Paul Beckingham
1cd09bc87b Alias
- Implemented simple word substitution aliases. This is not the ultimate form
  which will involve the ability to insert arbitrary constructs.  Later.
2014-06-03 00:11:42 -04:00
Paul Beckingham
a470e50ee6 Variant
- Attempts legacy date conversion ahead of ISO.
2014-06-02 23:30:40 -04:00
Paul Beckingham
7196ac8554 Variant
- ::operator_match disobeyed rc.search.case.sensitive.
2014-06-02 23:15:25 -04:00
Paul Beckingham
ac07189941 Task
- ::modify was setting the wrong attribute value, namely the original, not the
  one that had passed through the expression evaluator's intestines.
2014-06-02 22:22:39 -04:00
Paul Beckingham
870e45be0d Lexer
- Extended Lexer to consider forms like '123.abc' as identifiers. This is
  essential to recignizing and extending DOM support.
2014-06-02 22:19:38 -04:00