story: add new parsers to lib
"{(trip body)}"
"\0a"
==
+::
+:: Parsers
+::
+++ parse-commit
+ ;~ sfix
+ ;~ pfix (jest 'commit: ')
+ (cook @uv ;~(pfix (jest '0v') viz:ag))
+ ==
+ ::
+ (just '\0a')
+ ==
+::
+++ parse-title
+ ;~ sfix
+ (cook crip (star prn))
+ (jest '\0a\0a')
+ ==
+::
+++ parse-body-single
+ %- star
+ ;~ less
+ ;~(pose (jest '|||\0a') (jest '---\0a'))
+ (cook crip ;~(sfix (star prn) (just '\0a')))
+ ==
+::
+++ parse-prose-single ;~(plug parse-title parse-body-single)
+++ parse-rest-proses (star ;~(pfix (jest '|||\0a') parse-prose-single))
+++ parse-proses ;~(plug parse-prose-single parse-rest-proses)
+++ parse-chapter ;~(plug parse-commit parse-proses)
+++ parse-story (star ;~(sfix parse-chapter (jest '---\0a')))
+::
+:: Parse prose: a title, followed by a body
+::
+:: Parse proses: a prose, followed by zero or more proses, representing conflicts
+::
+:: Parse chapters (story entries): a commit followed by one or more proses
+::
+:: Parse story: zero or more chapters
+::
+::
--
\ No newline at end of file
