hledger/hledger-lib
Alex Chen 855a8f1985 lib: Re-implement the 'ExceptT' layer of the parser
We previously had another parser type, 'type ErroringJournalParser =
ExceptT String ...' for throwing parse errors without the possibility of
backtracking. This parser type was removed under the assumption that it
would be possible to write our parser without this capability. However,
after a hairy backtracking bug, we would now prefer to have the option
to prevent backtracking.

- Define a 'FinalParseError' type specifically for the 'ExceptT' layer
- Any parse error can be raised as a "final" parse error
- Tracks the stack of include files for parser errors, anticipating the
  removal of the tracking of stacks of include files in megaparsec 7
  - Although a stack of include files is also tracked in the 'StateT
    Journal' layer of the parser, it seems easier to guarantee correct
    error messages in the 'ExceptT FinalParserError' layer
  - This does not make the 'StateT Journal' stack redundant because the
    'ExceptT FinalParseError' stack cannot be used to detect cycles of
    include files
2018-09-29 22:33:34 -06:00
..
Hledger lib: Re-implement the 'ExceptT' layer of the parser 2018-09-29 22:33:34 -06:00
other/ledger-parse lib: restrict imports, avoiding GHCI clashes 2016-11-20 10:27:16 -08:00
test tests: make doctests suite run with old ghcs 2018-09-07 12:34:51 -07:00
Text lib: Re-implement the 'ExceptT' layer of the parser 2018-09-29 22:33:34 -06:00
.ghci tools: .ghci for each package, sets shorter prompt 2016-04-15 16:06:45 -07:00
CHANGES changelogs 2018-06-30 21:57:06 +01:00
hledger_csv.5 doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_csv.info doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_csv.m4.md doc: csv: fix how-to link 2018-05-04 09:03:00 -07:00
hledger_csv.txt doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_journal_directives.m4.md lib: doc: journal: describe current directive semantics, finally 2018-06-20 19:41:28 -07:00
hledger_journal.5 update embedded manuals 2018-09-06 12:03:50 -07:00
hledger_journal.info update embedded manuals 2018-09-06 12:03:50 -07:00
hledger_journal.m4.md budget: declaration and (actual) amount sorting for bal --budget 2018-09-24 08:31:19 -10:00
hledger_journal.txt update embedded manuals 2018-09-06 12:03:50 -07:00
hledger_timeclock.5 doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_timeclock.info doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_timeclock.m4.md remove numbers from all but nroff filenames 2017-12-06 18:35:18 -08:00
hledger_timeclock.txt doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_timedot.5 doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_timedot.info doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger_timedot.m4.md doc: journal: directives & periodic/automated cleanups 2018-04-29 18:02:16 -07:00
hledger_timedot.txt doc: update manuals harder, they should say 1.10.99 2018-07-04 15:09:57 +01:00
hledger-lib.cabal lib, cli, ui, web: update cabal files 2018-09-22 21:01:23 -10:00
Hledger.hs rename easytests_* to tests_* 2018-09-06 13:13:26 -07:00
LICENSE split off hledger-lib package, containing core types & utils 2010-03-22 01:44:59 +00:00
package.yaml lib, cli, ui, web: upper bound to avoid megaparsec 7 for now 2018-09-20 20:48:47 -10:00
README doc: ensure all five main packages have a README 2016-04-12 11:13:01 -07:00
Setup.hs Revert "remove Setup.hs files again, fixing a yesod devel warning" 2014-05-24 13:39:09 -07:00

A reusable library containing hledger's core functionality.
This is used by most hledger* packages for common data parsing,
command line option handling, reporting etc.