Commit graph

144 commits

Author SHA1 Message Date
Paul Beckingham
f5792a03fb Lexer: Captures minimumMatchLength for abbreviated attribute matching 2015-07-26 22:58:02 -04:00
Paul Beckingham
4646a86d4d Lexer: Added missing rc.<name> DOM parsing 2015-07-26 16:18:58 -04:00
Paul Beckingham
f5571c80c6 Lexer: Rewrote ::isDOM to perform exact matching, not pattern matching 2015-07-26 12:22:35 -04:00
Paul Beckingham
d0c4326af3 Lexer: Upgraded attributes vector to a map of name to type 2015-07-26 12:22:02 -04:00
Paul Beckingham
52d2bbd11a Lexer: Implemented ::isOneOf using a std::map as input 2015-07-26 12:09:40 -04:00
Paul Beckingham
391d527328 Lexer: Added end-boundary sensitivity to ::isLiteral and ::isOneOf 2015-07-26 10:48:26 -04:00
Paul Beckingham
3e74aa51e2 Lexer: Added 'endBoundary' requirement to ::isUUID 2015-07-25 17:59:40 -04:00
Paul Beckingham
c769891b76 Lexer: Implemented ::isInteger to help parsing. 2015-07-25 17:54:55 -04:00
Paul Beckingham
37e31e8e0b Lexer: Implemented ::isOneOf, to help with parsing 2015-07-25 17:34:51 -04:00
Paul Beckingham
9394b96202 Lexer: Implemented ::isLiteral, to help with parsing 2015-07-25 17:34:01 -04:00
Paul Beckingham
4f0e32b69b Lexer: Improved ::decomposePattern to extract raw string 2015-07-25 00:34:18 -04:00
Paul Beckingham
d6f977e2dd Lexer: Boosted precedence of UUID detection 2015-07-19 23:27:27 -04:00
Paul Beckingham
fed3b815a0 Lexer: Dead code removal 2015-07-17 14:59:42 -04:00
Paul Beckingham
76d3efe313 Lexer: Improved termination for UUID types 2015-07-16 16:15:07 -04:00
Paul Beckingham
1ec029be9b Lexer: Relocated instantiation closer to first use 2015-07-13 16:44:55 -04:00
Paul Beckingham
d0e4f4ca10 Lexer: Implemented ::decomposePattern 2015-07-11 17:09:29 -04:00
Paul Beckingham
1bef45ff47 Lexer: Added ::decomposeSubstitution and more flexible ::dequote
- ::dequote can now be given a string of valid quote characters, which defaults
  to '".
- ::decomposeSubstitution properly parses the /from/to/g construct allowing for
  escaped characters (\/).
- The 'g' at the end of a substitution is now considered to be a string of flag
  characters, which may contain 'g'. No other flag values are currently
  supported.
2015-07-11 16:40:52 -04:00
Paul Beckingham
642f378462 Lexer:: Implemented ::isHardBoundary to detect filter tokens 2015-07-11 13:12:09 -04:00
Paul Beckingham
8afc7443e4 Lexer: Fixed bug that allowed unterminated quotes strings, again 2015-07-11 11:25:24 -04:00
Paul Beckingham
d3971d2384 Lexer: Replaced ::isString implementation with a call to ::readWord 2015-07-11 11:06:43 -04:00
Paul Beckingham
b7438edfd5 Lexer: Fixed bug that allowed unterminated quotes strings 2015-07-11 10:56:55 -04:00
Paul Beckingham
daba36860b Lexer: Modified ::isSubstitution to use ::readWord 2015-07-11 10:27:23 -04:00
Paul Beckingham
096737bd02 Lexer: Modified ::isPattern to use ::readWord 2015-07-11 10:27:06 -04:00
Paul Beckingham
a86edaa6b2 Lexer: Converted ::isPair to use ::readWord
- With ::isPair using ::readWord, attribute values may now contain escaped
  entities such as \t, \uNNNN, and U+NNNN.
- Removed distinct handling for <name><sep><value>, rc<sep><value> and
  rc.<name><sep><value> - all generic now.
2015-07-10 11:24:57 -04:00
Paul Beckingham
45aaa530ac Lexer: Skipping whitespace on ::readWord at SOL was a mistake 2015-07-10 11:23:57 -04:00
Paul Beckingham
e55528e21e Lexer: ::readWord now skips leading whiteSpace 2015-07-08 11:24:46 -04:00
Paul Beckingham
e6c4f48a48 Lexer: readWords for quoted strings now retains the quotes 2015-07-08 09:03:48 -04:00
Paul Beckingham
1fed8c55f1 Lexer: Collapsed two ::isString calls into one 2015-07-06 16:40:18 -04:00
Paul Beckingham
7a6d546a0d Lexer:: Added polymorphic ::readWord for quoteѕ and unquoted strings 2015-07-06 16:37:46 -04:00
Paul Beckingham
d82da280cb Lexer: Implemented ::readWord
- Lexer::readWord is a general-purpose text parser, for finding plain words and
  quoted strings. It supports \uNNNN and U+NNNN unicode sequences, and general
  escapes, \t, \', \" etc.
2015-07-06 15:32:12 -04:00
Paul Beckingham
e36fb2f10c Lexer: Switched argument order for ::decomposePair 2015-07-06 12:10:50 -04:00
Paul Beckingham
81599071e7 Lexer: Implemented ::decomposePair 2015-07-06 11:28:39 -04:00
Paul Beckingham
1836ac29e2 Lexer: Removed expermental code, didn't help 2015-07-04 15:03:28 -04:00
Paul Beckingham
3b99559216 Lexer: Added standalone token support
- Added default ctor.
- Added ::token method for classifying whole tokens.
- Stubbed token classifier methods.
2015-07-04 11:38:09 -04:00
Paul Beckingham
4141215d4b Lexer: Clarified ::isTag lookbehind rules 2015-07-04 10:48:44 -04:00
Paul Beckingham
f33da18789 Lexer: Removed ::isList and Lexer::Type::list - not needed 2015-07-01 18:04:21 -04:00
Paul Beckingham
b090c6bccf Lexer: Removed unnecessary ::ambiguity method 2015-07-01 16:18:28 -04:00
Paul Beckingham
86ed232348 Lexer: Added ::wasQuoted to determine original quote state 2015-06-28 12:35:06 -04:00
Paul Beckingham
de93c63535 Lexer: Not longer considers ( ) part of a contiguous token 2015-06-24 12:47:24 -04:00
Paul Beckingham
d9bcbdee0a Lexer: Added ::isContiguous for word-like matching 2015-06-22 21:34:57 -04:00
Paul Beckingham
fd35190ab0 Lexer: Fixed bug that caused 'name=value' to not be a Lexer::Type::pair 2015-06-22 11:55:19 -04:00
Paul Beckingham
f4a7c50f1a Lexer: Added ::isSet to recognize numerical sets
- A numerical set is a list of numbers: 1,2,3
  Or a range of numbers:                5-10
  Or a combination of both:             1,2,3,5-10
2015-06-19 18:28:58 -07:00
Paul Beckingham
7293de75b0 TW-1608: The recur/recurring report shows tasks without a recur interval
- Lexer needed additional lookbehind criteria for ::isTag (thanks to Brad
  Collette).
2015-05-09 21:27:48 -04:00
Paul Beckingham
36e31811b0 TW-1606: scheduled.any filter
- The Lexer::dom type worked embedded, but not isolated (thanks to Peter Rochen).
2015-04-29 18:53:13 -04:00
Paul Beckingham
39fb45447b Lexer: Migrated ispunct to Lexer::isPunctuation 2015-04-16 23:52:43 -04:00
Paul Beckingham
c6dbdf87a4 Lexer: Migrated isalpha to Lexer::isAlpha 2015-04-16 23:24:17 -04:00
Wilhelm Schuermann
2eea7805c6 Lexer: Fix "task calc now+3days" error
- Fix isDuration() consuming operators, leading to evaluation errors.
  Previously only "task calc now + 3days" worked, now the spaces are
  entirely optional.
2015-04-02 13:29:57 +02:00
Paul Beckingham
96c448ca1e Lexer: Corrected off-by-one error in ::isTripleCharOperator 2015-03-29 23:07:18 -04:00
Paul Beckingham
5af3f71ac5 Lexer: Fixed /from/to/g detection at EOS 2015-03-29 22:56:34 -04:00
Paul Beckingham
8b863c9764 Lexer: Fixed /pattern/ detection at EOS 2015-03-29 22:53:38 -04:00