diff options
author | Eduardo Julian | 2021-07-13 02:41:45 -0400 |
---|---|---|
committer | Eduardo Julian | 2021-07-13 02:41:45 -0400 |
commit | 2431e767a09894c2f685911ba7f1ba0b7de2a165 (patch) | |
tree | f5c79fb04af80b8418e9de0a5e668f29403dd7fd /stdlib/source/program/aedifex/artifact/snapshot | |
parent | 86bcfadb774618defaa27bbb9361a93d288fb985 (diff) |
Improved the XML parsing library.
Diffstat (limited to '')
4 files changed, 15 insertions, 25 deletions
diff --git a/stdlib/source/program/aedifex/artifact/snapshot.lux b/stdlib/source/program/aedifex/artifact/snapshot.lux index 836365fed..89897316d 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot.lux @@ -49,10 +49,9 @@ (def: local_copy_parser (Parser Any) - (do <>.monad - [_ (<xml>.node ..<local_copy>)] - (<xml>.children (<text>.embed (<text>.this ..local_copy_value) - <xml>.text)))) + (<| (<xml>.node ..<local_copy>) + (<text>.embed (<text>.this ..local_copy_value)) + <xml>.text)) (def: #export (format snapshot) (-> Snapshot XML) @@ -66,7 +65,6 @@ (def: #export parser (Parser Snapshot) - (do <>.monad - [_ (<xml>.node <snapshot>)] - (<xml>.children (<>.or ..local_copy_parser - /stamp.parser)))) + (<| (<xml>.node <snapshot>) + (<>.or ..local_copy_parser + /stamp.parser))) diff --git a/stdlib/source/program/aedifex/artifact/snapshot/build.lux b/stdlib/source/program/aedifex/artifact/snapshot/build.lux index d9a8b729e..cd87c283e 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/build.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/build.lux @@ -36,8 +36,6 @@ (def: #export parser (Parser Build) - (do <>.monad - [_ (<xml>.node ..tag)] - (<text>.embed (<>.codec nat.decimal - (<text>.many <text>.decimal)) - (<xml>.children <xml>.text)))) + (<| (<xml>.node ..tag) + (<text>.embed (<>.codec nat.decimal (<text>.many <text>.decimal))) + <xml>.text)) diff --git a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux index f321e11c1..2d127af21 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux @@ -44,10 +44,9 @@ (def: time_parser (Parser Time) - (do <>.monad - [_ (<xml>.node <timestamp>)] - (<text>.embed //time.parser - (<xml>.children <xml>.text)))) + (<| (<xml>.node <timestamp>) + (<text>.embed //time.parser) + <xml>.text)) (def: #export parser (Parser Stamp) diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version.lux b/stdlib/source/program/aedifex/artifact/snapshot/version.lux index 905523bd0..806d2b261 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/version.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/version.lux @@ -50,19 +50,14 @@ (..format_text ..<value> value) (..format_text ..<updated> (///time.format updated))))) -(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: #export parser (Parser Version) - (<| (..sub ..<snapshot_version>) + (<| (<xml>.node ..<snapshot_version>) ($_ <>.and (<xml>.somewhere (..text ..<extension>)) (<xml>.somewhere (..text ..<value>)) |