Commit graph

156 commits

Author SHA1 Message Date
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
Paul Beckingham
9630b76990 Build: Resolve warnings from flod build 2015-03-29 18:21:33 -04:00
Paul Beckingham
289780c8cc Lexer: Added comments 2015-03-20 17:16:00 -04:00
Paul Beckingham
d202691638 Lexer
- Improved comment.
2015-03-07 10:09:58 -05:00
Paul Beckingham
e11b333a0b Lexer
- ::isPath was not observing the null character string terminator.
2015-03-05 21:22:40 -05:00
Paul Beckingham
53e9bd0cbd Lexer
- Words cannot contain single-char operators.
2015-03-02 00:03:01 -05:00
Paul Beckingham
237d932ff9 Lexer
- Improved ::isIdentifier, ::isUUID and ::isDOM.
2015-03-01 23:54:45 -05:00
Paul Beckingham
2af470bb90 Lexer
- Lexer::Type::identifier now includes DOM references.
2015-03-01 22:08:19 -05:00
Paul Beckingham
309b607672 Lexer
- Number digits followed by non-whitespace, non-operators are not numbers, ie
  "2nd" is not "2","nd".
2015-03-01 16:03:10 -05:00
Paul Beckingham
3f2d377fef Lexer
- Allow '=' in rc.<name>[:=]<value>, but not in non-rc Lexer::Type::pair
  combinations. That means 'name=value' is not a Lexer::Type::pair.
2015-02-28 12:05:24 -05:00
Paul Beckingham
e67c6c45cf Lexer
- Strings now retain their quotes, for compatibility with 2.4.1.
2015-02-24 23:01:12 -05:00
Paul Beckingham
8791c0a921 Lexer
- Migrated old noSpaces() function into Lexer::isOneWord.
2015-02-22 18:23:26 -05:00
Paul Beckingham
745aad0d27 Lexer
- Renamed Lexer2 to Lexer, it looks good enough to assume control.
2015-02-22 18:23:03 -05:00
Paul Beckingham
0cf18f3b16 Lexer2
- Integrated Lexer2 in place of Lexer. Tests fail.
2015-02-22 13:52:14 -05:00
Paul Beckingham
6626207ad1 TW-1522
- TW-1522 Date format doesn't like hyphens (thanks to Scott Carter).
2015-01-25 14:49:02 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
06319711f1 Quoting
- Removed automatic dequoting by the Lexer.
- Implemented Lexer::dequote for manual control.
- Variant dequotes string values when appropriate.
- Fixed some unit tests that became wrong.
2014-11-18 00:59:52 -05:00
Paul Beckingham
38359b779a Lexer
- Exposed more primitives as static methods.
2014-11-04 22:51:25 -05:00
Paul Beckingham
51f08496b5 Lexer
- When parsing '\o/' the state Lexer::typeIdentifierEscape had no exit but a
  successful outcome, and looped.
- Fixed test.
2014-10-16 21:22:34 -04:00
Paul Beckingham
aab23692f1 Lexer
- Added a new type Lexer::typeTag.
2014-09-07 01:17:48 -04:00
Paul Beckingham
32566c9844 Bug
- Segfault when 'project:android' is split into 'and' and 'roid' (thanks to
  Richard Boß).
2014-07-07 21:43:09 -04:00
Paul Beckingham
3716e61259 L10N
- Localized Lexer.
2014-07-05 11:11:19 -04:00
Paul Beckingham
9778100d29 Lexer
- When parsing two-character operators ('or') from a string ('ordinary'), the
  lack of boundary between the 'r' and the 'd' now prevents the operator 'or'
  from being recognized.
2014-07-03 16:26:17 -04:00
Paul Beckingham
0c0e36993d Date
- Added a new date parse method that indicates the length of the parsed item,
  and does not require Nibbler::depletion.
2014-06-29 22:16:44 -04:00
Paul Beckingham
be6ec99fcb Lexer
- Shut off the depletion requiremeent for lexed dates.
2014-06-29 11:36:51 -04:00
Paul Beckingham
5150e49f67 Lexer
- Legacy date parsing should not permis ISO and epoch inputs.
2014-06-29 09:55:31 -04:00
Paul Beckingham
65f979cb4f Lexer
- Refactored (step 1) the ISO and Legacy date/duration parsing for lexer state
  machine breakout.
2014-06-29 09:36:27 -04:00
Paul Beckingham
008ba6ecab Lexer
- Implmented boundary detection hints.
2014-06-18 17:45:25 -04:00
Paul Beckingham
a2936c045c Lexer
- Now recognized the exact inequality operator !==.
2014-06-14 16:03:07 -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
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
11a4c58735 Lexer
- Factored out an invariant.
2014-06-09 18:02:34 -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
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
Paul Beckingham
6706d1b955 Date/ISO8601
- Changed the order of parsing from ISO, Date to Date, ISO. This favors the
  old dateformat mechanism more than the new one. One day this will flip.
2014-06-01 00:10:16 -04:00
Paul Beckingham
7598997e70 Lexer
- Implemented ::token_split, which performs a full lex, and doesn't require
  white space like ::word_split does.
- Added unit tests.
2014-05-31 13:51:10 -04:00
Paul Beckingham
0af9bbdc03 Lexer
- Renamed ::split to ::word_split, for clarity and because of the need for a
  full token split, coming next.
2014-05-31 13:48:52 -04:00
Paul Beckingham
592a3bb60f Lexer
- Lexer now makes a speculative legacy dateformat parse whenever it encounters
  a decimal digit.  This assumes that rc.dateformat begins with a numeric date
  element, which is a restriction, but not a big one.
2014-05-29 18:09:11 -04:00
Paul Beckingham
dead140c74 Code Cleanup
- Removed unnecessary includes.
- Added comment for Date integration.
2014-05-28 21:03:03 -04:00