import: hackage: Parse braced properties.
authorRobert Vollmert <rob@vllmrt.net>
Sat, 1 Jun 2019 22:27:50 +0000 (00:27 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sun, 2 Jun 2019 20:16:05 +0000 (22:16 +0200)
commit959c9d159da2c53b87ae0af1421aecac98b20f46
tree1144e306fac77111b4607f757cd3fa24f182144e
parent64d31813577b7471f819652e3ec81abb285bb77c
import: hackage: Parse braced properties.

This adds partial support for Cabal properties that use curly
braces instead of the layout rule.  See for example
https://hackage.haskell.org/package/cassava/

* guix/import/cabal.scm (read-braced-value): New procedure.
(is-property): Remove.
(is-layout-property, is-braced-property): New variables.
(lex-property): Rename to...
(lex-layout-property): ... this.
(lex-braced-property, lex-property): New procedures.
(lex-token): Add call to 'lex-property'.
* guix/tests/hackage.scm: Test braced description import.
* tests/hackage.scm (test-cabal-multiline-desc): Rename to...
(test-cabal-multiline-layout): ... this.
("hackage->guix-package test multiline desc"): Rename to...
("hackage->guix-package test multiline desc (layout)"): ... this.
(test-cabal-multiline-braced): New variable.
("hackage->guix-package test multiline desc (braced)"): New test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
guix/import/cabal.scm
tests/hackage.scm