Commit Graph

22 Commits

Author SHA1 Message Date
Paul Beckingham
1994240899 Parsing
- Created A3::is_operator to allow for more complex processing.  Renamed
  old A3::is_operator to A3::which_operator.
2011-09-10 13:25:46 -04:00
Paul Beckingham
438e65036b Expression Refactor
- Arguments are now categorized as either "literal" or a specific
  category, with accompanying type.  Type is inferred for literals,
  and referenced for attributes.
2011-08-20 14:02:48 -04:00
Paul Beckingham
816b07e868 Expressions - Refactor
- The A3::Arg object is very similar to the E9::Term object, so the two are
  being merged.  First step is to separate A3::Arg into it's own space, then
  add a _type member.
- Added more valid stop characters as terminators for various arg types.
- Removed redundant E9 special handling for dates, which is already built in
  to the Date object.
2011-08-19 22:42:19 -04:00
Paul Beckingham
7aa7fe083f Parsing
- Added special look-ahead rules to remove cases where '3M' was considered
  a number.
2011-08-13 14:10:24 -04:00
Paul Beckingham
100af304b7 A3
- Added copy ctor, operator=.
- Included proper handling of the _limit member.
2011-07-30 14:22:15 -04:00
Paul Beckingham
ab8a6d9e88 Code Cleanup
- Eliminated Expression.{h,cpp}.  E9 now replaces it.
2011-07-25 23:53:41 -04:00
Paul Beckingham
83c0ea6ab2 E9
- Implemented the shell of E9::eval.
- Stubbed out operator_xxx helper methods.
2011-07-25 22:59:47 -04:00
Paul Beckingham
3d13ac9f12 Expression reboot
- A3::postfix implemented.
2011-07-25 01:33:23 -04:00
Paul Beckingham
af2f44ca5a Expression reboot
- Implemented selective ID/UUID detection, allowing only a single
  block of consecutive ID/UUID values to be considered a sequence.
- Implemented A3::sequence to expand task IDs and UUIDs into an
  algebraic filter.
2011-07-25 01:10:15 -04:00
Paul Beckingham
8e691d5c5f Expression reboot
- Implemented A3::expand to include all expandable types.
2011-07-24 23:20:06 -04:00
Paul Beckingham
5daabd2548 Expression reboot
- Implemented A3::extract_pattern.
- Implemented A3::infix, which inserts 'and' operators where necessary
  in expressions.
- Began implementation of A3::expand which converts old-style filters
  (pri:H) to the new algebraic style (priority = H).
2011-07-24 21:53:03 -04:00
Paul Beckingham
67fb1e9be4 Expression reboot
- Downgraded A3::extract_words to return a simple vector of strings.
  Any more is unnecessary.
2011-07-24 16:44:05 -04:00
Paul Beckingham
b30b187b4c Expression reboot
- Implemented A3::is_tag.
- Removed obsolte A3::extract_* code.
2011-07-24 14:46:22 -04:00
Paul Beckingham
b3a73f2da1 Expression reboot
- Implemented A3::is_id and A3::is_uuid.
- Obsolted old is_operator.
- Obsolted old is_modifier.
- Obsolted old is_expression.
2011-07-24 14:27:10 -04:00
Paul Beckingham
10c1203c87 Expression reboot
- Implemented A3::is_subst.
2011-07-24 13:41:04 -04:00
Paul Beckingham
c39f8bd6af Expressions reboot
- Implemented A3::is_dom obsoleting Nibbler::getDOM.
- Implemented A3::is_duration.
- Implemented A3::is_pattern to replace Nibbler::getQuoted call.
- Improved A3::is_attr, A3::is_attmod.
- Obsoleted A3::is_multipart.
2011-07-24 13:33:20 -04:00
Paul Beckingham
b55f47ec9a Expression reboot
- Implemented A3::is_modifier which canonicalized modifiers.
- Implemtned A3::is_attmod.
2011-07-24 10:57:30 -04:00
Paul Beckingham
94dfc68cca Expression reboot
- A3::tokenize recognizes strings, patterns, attr, ops, dates.
- A3::tokenize canonicalizes attributes.
2011-07-24 01:06:26 -04:00
Paul Beckingham
91225d808f Expression reboot
- A3 now tracks whether a command is read-only, and builds filters accordingly.
- Implemented extract_filter, extract_modfications and extract_words stubs.
- Removed all E9 implementation details - this is going to be written from
  scratch.
2011-07-23 23:39:11 -04:00
Paul Beckingham
abcda0bcfa Expression reboot
- More integration of A3 into Context.
- Now ready for filter/modification/word extraction.
2011-07-23 17:03:44 -04:00
Paul Beckingham
4fc4e0f637 Expressions reboot
- Now handles argument captures from argv, stdin.
- Now handles rc overrides, aliases, default command.
2011-07-23 15:24:39 -04:00
Paul Beckingham
5b5978952a Expressions reboot
- Created A3.{h,cpp} which will be a simpler, lightweight version of
  Arguments.{h,cpp} that does less, but does it better.
- Created E9.{h,cpp} which will be a better implementation of
  Expression.{h,cpp} that does less, but does it better.
- Integrated A3 into Context::initialize, and Arguments and A3 will
  coexist until A3 surpasses Arguments.
2011-07-23 13:38:33 -04:00