aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/metadata/artifact.lux
diff options
context:
space:
mode:
authorEduardo Julian2021-07-13 02:41:45 -0400
committerEduardo Julian2021-07-13 02:41:45 -0400
commit2431e767a09894c2f685911ba7f1ba0b7de2a165 (patch)
treef5c79fb04af80b8418e9de0a5e668f29403dd7fd /stdlib/source/program/aedifex/metadata/artifact.lux
parent86bcfadb774618defaa27bbb9361a93d288fb985 (diff)
Improved the XML parsing library.
Diffstat (limited to 'stdlib/source/program/aedifex/metadata/artifact.lux')
-rw-r--r--stdlib/source/program/aedifex/metadata/artifact.lux18
1 files changed, 6 insertions, 12 deletions
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index 7150efbab..50f228e50 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -105,15 +105,10 @@
(list (..format_versions (get@ #versions value))
(..format_last_updated (get@ #last_updated value)))))))
-(def: (sub tag parser)
- (All [a] (-> xml.Tag (Parser a) (Parser a)))
- (do <>.monad
- [_ (<xml>.node tag)]
- (<xml>.children parser)))
-
(def: (text tag)
(-> xml.Tag (Parser Text))
- (..sub tag <xml>.text))
+ (<| (<xml>.node tag)
+ <xml>.text))
(def: date_parser
(<text>.Parser Date)
@@ -147,18 +142,17 @@
(def: #export parser
(Parser Metadata)
- (<| (..sub ..<metadata>)
+ (<| (<xml>.node ..<metadata>)
($_ <>.and
(<xml>.somewhere (..text ..<group>))
(<xml>.somewhere (..text ..<name>))
- (<| (..sub ..<versioning>)
+ (<| (<xml>.node ..<versioning>)
($_ <>.and
(<| <xml>.somewhere
- (..sub ..<versions>)
+ (<xml>.node ..<versions>)
(<>.many (..text ..<version>)))
(<xml>.somewhere ..last_updated_parser)
- ))
- )))
+ )))))
(def: #export equivalence
(Equivalence Metadata)