Alex Chen
e82b01bcf8
lib: refine parse errors and parser labels
2018-06-20 23:24:39 -06:00
Alex Chen
9674f2a8cc
lib: tweak whitespace parsing for better parse errors
...
- expands the set of expected tokens when e.g. parsing the invalid
posting `account $1 a`
- whitespace can affect parse errors because of the longest match rule
where errors that occur later take precedence over those that occur
earlier
2018-06-20 23:24:39 -06:00
Alex Chen
ed0106b209
lib: reduce backtracking of various parsers
2018-06-20 23:24:39 -06:00
Alex Chen
e3a755b5b1
lib: refactor amount parsers to minimize backtracking
...
- inline `spaceamountormissingp` into `postingp`
- combine `rightsymbolamountp` and `nosymbolamountp`
- the multiplier symbol '*' for an amount must now always preceed a sign '-'
[breaking change]
- make amount parser labels more generic to simplify error messages
2018-06-20 23:24:39 -06:00
Alex Chen
89b1fd7de3
lib: refactor date-time parser, add error messages
...
- also removed commented-out time-zone code
2018-06-20 23:24:39 -06:00
Simon Michael
bc9375e4e5
lib: doc: journal: describe current directive semantics, finally
...
It's amazing how you can build, document, support and fix a thing for
years and not know what exactly it does. Directives are tricky.
Here is a pretty accurate description of their current behaviour,
determined by testing.
2018-06-20 19:41:28 -07:00
Simon Michael
26489765ef
lib: manual updates
...
[ci skip]
2018-06-20 18:44:34 -07:00
Simon Michael
6a96683691
web: make --auto and multiple -f options work again
...
I think we lost one or both of these at the time of ecf49b1e .
2018-06-20 00:26:37 -07:00
Simon Michael
9c1db9ed9f
lib: fix forecast start/end dates
...
pushed too soon
2018-06-18 18:08:55 -07:00
Simon Michael
26d2c79ce0
lib: make date: also set forecast end date, not just -e and -p
2018-06-18 17:55:18 -07:00
Simon Michael
816ba0f89d
consistent comment wording
2018-06-18 17:54:25 -07:00
Simon Michael
b04dc82125
lib: doc: journal: clarify periodic transactions
...
[ci skip]
2018-06-18 17:54:07 -07:00
Simon Michael
c4d45cffc4
lib: journal: require a space between period expr. and other fields
2018-06-12 16:41:36 -07:00
Simon Michael
eb23504906
lib: periodexprp: don't consume trailing whitespace
2018-06-12 16:41:36 -07:00
Alex Chen
c6bfd92dd3
removing "re-parsing" for pull 807
...
For Data/Dates.hs in particular:
- Changed `SimpleTextParser` to `TextParser m` for all parsers
- Changed `string` to the case-insensitive `string'` to match the
behaviour of `T.toLower` found in `parsePeriodExpr`
- export `periodexprp` for "direct" use
2018-06-12 16:41:36 -07:00
Simon Michael
34b4553344
lib: test descriptions
2018-06-12 16:41:36 -07:00
Simon Michael
0edcd2f64e
lib: test periodic transaction description, status mark, comment, tag
...
[ci skip]
2018-06-12 16:41:36 -07:00
Simon Michael
3146b9c910
lib: journal: update periodic txn func tests
2018-06-12 16:41:36 -07:00
Simon Michael
57f41697ba
update embedded manuals
2018-06-12 16:41:36 -07:00
Simon Michael
e3507ad944
lib: journal: allow descriptions/comments in periodic transactions
...
Also period expressions relative to today's date can now be used,
for what it's worth.
2018-06-12 16:41:36 -07:00
Simon Michael
dfcafc2cdf
lib: refactor some journal, period expression parsers
2018-06-12 16:41:36 -07:00
Simon Michael
1287081ffd
tools: doctest: slight cleanup
2018-06-12 16:41:36 -07:00
Simon Michael
7a4c3eea65
lib: doc: periodic/auto rule cleanups
2018-06-12 16:41:36 -07:00
Simon Michael
bc4286ee0f
site: download: emphasise need to try latest stack
...
[ci skip]
2018-06-11 16:38:15 -07:00
Simon Michael
a7ca636942
Merge pull request #804 from awjchen/parseErrors
...
Display the line on which a parse error occurs
2018-06-11 14:31:30 -07:00
Alex Chen
0d7380933b
lib: update a parse-error test
2018-06-11 14:43:19 -06:00
Alex Chen
0fb737bc39
lib: reduce backtracking in commoditydirectiveonelinep
2018-06-11 14:29:18 -06:00
Alex Chen
0382bb5cd4
lib: move custom parse errors to Text.Megaparsec.Custom
2018-06-11 13:58:56 -06:00
Alex Chen
846a38139d
lib: add license to the code copied from megaparsec
2018-06-11 13:58:56 -06:00
Alex Chen
2b22f857ac
lib: make the parse errors module backwards compatible
2018-06-11 13:58:56 -06:00
Alex Chen
ff2b042c7e
lib: remove the ErroringJournalParser type
2018-06-11 13:58:56 -06:00
Alex Chen
39e7ef0311
lib: refine date parser error messages
2018-06-11 13:58:55 -06:00
Alex Chen
132f8706d7
lib: edit comments to satisfy doctest
2018-06-11 13:57:30 -06:00
Alex Chen
5f87e7cd5d
lib: enable the custom parse errors
2018-06-11 13:57:30 -06:00
Alex Chen
2d21ec0174
lib: weaken parser types
2018-06-11 13:57:30 -06:00
Alex Chen
4a9e418b7a
lib: refactor includedirectivep to avoid "re-parsing"
2018-06-11 13:57:30 -06:00
Alex Chen
b034fa7ca9
lib: weaken parser types
2018-06-11 13:57:30 -06:00
Alex Chen
9b6558401f
lib: rewrite comment parsers [API]
...
- avoid the "re-parsing" of comments using the `match` parser combinator
2018-06-11 13:57:30 -06:00
Alex Chen
d707b351cc
lib: switch to custom parse errors for parserErrorAt
...
Also weaken the types of the parsers that use it
2018-06-11 13:57:30 -06:00
Alex Chen
c5561f25f1
lib: switch parsers to the custom error type
...
Also add an explicit export list to `hledger-lib/Hledger/Utils/Parse.hs`
in order to re-export the custom error type (for convenience).
2018-06-11 13:57:30 -06:00
Alex Chen
ca201e4618
lib: add a module for custom parse errors
...
... for displaying the source line on which parse errors occured
Over the following set of commits, I will to refactor the parsers to
obviate the `ExceptT String` layer of the `ErroringJournalParser` type
so that all parse errors go through Megaparsec's parse error machinery.
2018-06-11 13:57:22 -06:00
Simon Michael
1624206b5d
lib: more parse error test cleanup ( #804 )
...
[ci skip]
2018-06-10 08:04:45 -07:00
Simon Michael
e83d9a1e34
lib: test cleanups ( #804 )
2018-06-10 07:54:47 -07:00
Simon Michael
9d33342ff3
lib: start some parse error tests ( #804 )
...
[ci skip]
2018-06-10 07:54:40 -07:00
Simon Michael
42f47e2b6b
update embedded manuals
...
[ci skip]
2018-06-08 17:27:04 -07:00
Simon Michael
312bf2fcb5
tools: make ghcid-test: ghcid plus the test command
...
[ci skip]
2018-06-08 06:01:36 -07:00
Simon Michael
ee68fed951
tools: make: rename rules to ghci[d]-doctest
...
[ci skip]
2018-06-07 18:20:14 -07:00
Simon Michael
305f208862
stack: remove obsolete extra deps
...
[ci skip]
2018-06-07 13:19:08 -07:00
Simon Michael
5af502b2bb
site: download: C deps tweak
...
[ci skip]
2018-06-07 13:19:08 -07:00
Simon Michael
79d3da0b2d
Merge pull request #803 from trevorriles/doctests-fast-flag
...
Add fast flag to doctests.
2018-06-07 11:28:33 -07:00