Paul Beckingham
b92802c2fb
Entities: There is no spoon^H^H^H^H^Huda entity
...
- The code was trying to canonicalize 'attribute' and 'uda' separately,
but there are no 'uda' entities.
2015-07-15 19:40:13 -04:00
Paul Beckingham
cf816be717
CLI2: Removed incorrect comment
2015-07-13 16:46:07 -04:00
Paul Beckingham
a7eb32272c
TW-1419: On add '-tag' is considered a tag removal, which makes no sense.
2015-07-13 14:24:24 -04:00
Paul Beckingham
a09a2bc241
CLI2: Added conditional expression eval
...
- Only non-'string' type attributes ('numeric', 'date', 'duration') support the
evaluation of values in FILTER arguments, for example:
due.before:now+1d
If evaluation is supported, values need to be lexed into tokens, and if there
are multiple tokens, parenthesize the set.
2015-07-13 01:09:11 -04:00
Paul Beckingham
9f2efa67c2
CLI2: Reduced verbosity of debug output
2015-07-13 00:22:19 -04:00
Paul Beckingham
d2f5937344
CLI2: Fixed bug that allowed numbers to be interpreted as IDs
...
- For a WRITECMD with no FILTER args, if a Lexer::Type::number exists as a
MODIFICATION, and that number is an unsigned integer, then promote it to
an ID. Added eceptions for the 'add' and 'log' command.
This feature allows for the continued use of 'task done 1', which should
be deprecated.
2015-07-12 23:32:26 -04:00
Paul Beckingham
694323a8f1
CLI2: Implemented ::lexFilterArgs
...
- Now spots filter elements that need to be Lexed.
2015-07-12 17:57:52 -04:00
Paul Beckingham
c2c53fa668
CLI2: Tags args 'UNKNOWN' to help spot an worthless use case
2015-07-12 17:56:59 -04:00
Paul Beckingham
f09a39f043
CLI2: Cleaned up formatting
2015-07-12 17:56:40 -04:00
Paul Beckingham
b7c1658a6e
CLI2: Trim incoming raw args
2015-07-12 17:32:10 -04:00
Paul Beckingham
6b78abced2
CLI2: Tightened selection of MODIFICATION Lexer::Type::number upgrade to ID
...
- When a write command contains no ID/UUID, looking for Lexer::Type::number
arguments that are tagged as MODIFICATIONS is now limited to only positive
integers that are found.
2015-07-12 16:12:32 -04:00
Paul Beckingham
81fc158dc9
CLI2: Better algorithm for ::desugarFilterPlainArgs which appears to work well
2015-07-12 14:07:48 -04:00
Paul Beckingham
29d6eceda1
CLI2: ::desugarFilterAttributes now relies on earlier parsing
2015-07-11 17:13:18 -04:00
Paul Beckingham
3f3d698a28
CLI2: Integrated Lexer::decomposePattern
2015-07-11 17:10:10 -04:00
Paul Beckingham
1f8a66b7f3
CLI2: Integrated Lexer::decomposeSubstitution
...
- Task::modify now considers the 'g' at the end of a substitution to be a
string of characters, which may contain 'g'. No other flags are currently
supported.
2015-07-11 16:44:13 -04:00
Paul Beckingham
d6d01ee1bf
CLI2: Fixed bug where only the first lexeme was used
...
- For quoted Lexer::Type::pair arguments, use the whole quoted arg, not merely
the first lexeme.
2015-07-11 14:31:09 -04:00
Paul Beckingham
6d9d896a37
CLI2: ::lexArguments auto-quotes orignally quoted args, but didn't dequote after
2015-07-11 13:47:26 -04:00
Paul Beckingham
21be6862db
CLI2: ::lexArguments now uses ::readWord to expand escapes
2015-07-10 13:15:16 -04:00
Paul Beckingham
5a21945a0d
CLI2: Integrated Lexer::decomposePair
2015-07-08 09:48:15 -04:00
Paul Beckingham
abaf326855
CLI2: Added note about path exclusion
2015-07-06 16:03:24 -04:00
Paul Beckingham
0ee26a0cae
CLI2: No longer attempts to canonicalize rc:<file> and rc.<name>:<value>
2015-07-06 12:14:52 -04:00
Paul Beckingham
dcb13bd2b4
CLI2: Integrated Lexer::decomposePair into A2::decompose
2015-07-06 12:13:46 -04:00
Paul Beckingham
023fd9d38a
CLI2: Removed obsolete ::decomposeModSubstitutions
2015-07-05 16:31:30 -04:00
Paul Beckingham
af71af1085
CLI2: Removed obsolete ::decomposeModTags
2015-07-05 16:30:59 -04:00
Paul Beckingham
f5ece63ec0
CLI2: Removed obsolete ::decomposeModAttributes
2015-07-05 16:29:54 -04:00
Paul Beckingham
460f2aeea5
CLI2: Refactoring
...
- Whenever A2::attribute sees 'raw' being set, it automaticall decomposes the
arg, which can now be removed from other methods.
- New ::canonicalizeNames method means that the ::decomposeMod* methods are no
longer needed.
- Removed ::findOverrides which now does nothing.
2015-07-05 16:13:56 -04:00
Paul Beckingham
0c568580b3
CLI2: Removed obsolete ::isUUIDList
...
- Removed unsupported UUID lists, which shoudl have been removed earlier when
Lexer::Type::list was dropped.
- Reversed logic in 'if' statements to perform the lowest cost comparison first.
2015-07-05 10:39:34 -04:00
Paul Beckingham
184fde0f5f
CLI2: Skips first terminator, --, but not others
2015-07-04 16:39:15 -04:00
Paul Beckingham
a7982e434a
CLI2: Quoted Lexer::Type::pair args are maximal
2015-07-04 15:33:44 -04:00
Paul Beckingham
796a26cad8
CLI2: Simplified ::lexArguments
...
- ::lexArguments no longer lexes arguments into multiple tokens, instead it
simply assigns the type, if the argument is a single token.
2015-07-01 21:49:31 -04:00
Paul Beckingham
bce24da6a5
CLI2: Eliminated unnecessary ::findTerminator
2015-07-01 21:47:19 -04:00
Paul Beckingham
a2874f7f10
CLI2: Added more logic to ::lexArguments
2015-07-01 18:03:43 -04:00
Paul Beckingham
1b83734392
CLI2: Added ::demoteDOM to demote unrecognized DOM args to words
2015-07-01 18:02:48 -04:00
Paul Beckingham
b090c6bccf
Lexer: Removed unnecessary ::ambiguity method
2015-07-01 16:18:28 -04:00
Paul Beckingham
ba65fa67b1
CLI2: ::aliasExpansion now properly observes and propagates TERMINATED args
2015-06-28 00:33:17 -04:00
Paul Beckingham
8cc75693a0
CLI2: Some args must avoid lexing
...
- This now include rc:xxx and rc.xxx.
2015-06-27 23:34:03 -04:00
Paul Beckingham
1824a542f6
CLI2: Obey the terminator and skip Lexing
2015-06-27 17:35:15 -04:00
Paul Beckingham
b67b2ccc96
CLI2: Added ::addContextFilter, and supporting processing
2015-06-27 15:53:24 -04:00
Paul Beckingham
88b1707b58
CLI2: Commented out implementation of ::desugarFilterPlainArgs
...
- The algorithm is wrong, and it misidentfies solitary search patterns.
2015-06-24 21:29:56 -04:00
Paul Beckingham
9dcd52fc5b
CLI2: Inhibit the identification of IDs if preceeded by an operator
2015-06-24 20:59:27 -04:00
Paul Beckingham
183550a190
CLI2: Unrecognized Lexer::Type::pair args are now downgraded to Lexer::Type::word
2015-06-24 13:06:20 -04:00
Paul Beckingham
449d577cca
CLI2: Moved all the ::desugar* methods after the single-arg manipulations
2015-06-22 21:21:26 -04:00
Paul Beckingham
1cf07cd6fb
CLI2: Fixed bug in UUID filtering
...
- When filtering by UUID, the expression listed the 'uuid' attribute as a type
Lexer::Type::string, which should have been Lexer::Type::dom.
2015-06-22 16:20:22 -04:00
Paul Beckingham
4b68fea674
CLI2: Fixed bug in ::findCommand
...
- If an argument is an exact match for a command ('projects'), it is a command.
- If an argument is not an exact match for command ('project'), but is an exact
match for an attribute, it is not a command.
- If an argument fails the above tests, but canonicalizes to a command, it is a
command.
2015-06-22 16:01:01 -04:00
Paul Beckingham
a541156cec
CLI2: Added support for write commands specifїgin ID/UUID *after* CMD
2015-06-22 14:48:17 -04:00
Paul Beckingham
3d19bffd55
CLI2: Raised the precedence of ::desugarPlainArgs
2015-06-22 14:12:05 -04:00
Paul Beckingham
076b2aaa95
CLI2: Fix bug where a second terminator (--) was stripped
2015-06-22 14:11:28 -04:00
Paul Beckingham
02b91a94fc
CLI2: Fixed bug recognizing command names
...
- If a command is found via canonicalization, but that command is also an exact
match for an attribute, then it is not a command.
2015-06-22 11:55:55 -04:00
Paul Beckingham
b573a0ddcc
CLI2: Added missing ::analyze call after ::add for ::addFilter
2015-06-22 11:34:02 -04:00
Paul Beckingham
fcc1bb3ef2
CLI2: Fixed bug where ::desugarFilterAttributes set 'name' instead of 'canonical'
2015-06-22 11:09:49 -04:00