aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/metadata
diff options
context:
space:
mode:
authorEduardo Julian2020-12-17 22:03:54 -0400
committerEduardo Julian2020-12-17 22:03:54 -0400
commit68b1dd82f23d6648ac3d9075a8f84b0174392945 (patch)
tree2db148a005c21552947d96dfd4e788ba21705037 /stdlib/source/program/aedifex/metadata
parentabc5c5293603229b447b8b5dfa7f3275571ad982 (diff)
More optimizations to the Lux syntax parser.
Diffstat (limited to '')
-rw-r--r--stdlib/source/program/aedifex/metadata.lux12
-rw-r--r--stdlib/source/program/aedifex/metadata/artifact.lux17
-rw-r--r--stdlib/source/program/aedifex/metadata/snapshot.lux12
3 files changed, 24 insertions, 17 deletions
diff --git a/stdlib/source/program/aedifex/metadata.lux b/stdlib/source/program/aedifex/metadata.lux
index 937fea4a3..11a792528 100644
--- a/stdlib/source/program/aedifex/metadata.lux
+++ b/stdlib/source/program/aedifex/metadata.lux
@@ -7,22 +7,22 @@
[file (#+ Path)]
[net
["." uri (#+ URI)]]]]
- ["." //
+ [//
["." artifact (#+ Artifact)]])
(def: #export file
Path
"maven-metadata.xml")
-(def: (project separator artifact)
+(def: (project' separator artifact)
(-> Text Artifact Text)
(format (artifact.directory separator (get@ #artifact.group artifact))
separator
(get@ #artifact.name artifact)))
-(def: (version separator artifact)
+(def: (version' separator artifact)
(-> Text Artifact Text)
- (format (..project separator artifact)
+ (format (..project' separator artifact)
separator
(get@ #artifact.version artifact)))
@@ -32,6 +32,6 @@
(let [/ uri.separator]
(format (<private> / artifact) / ..file)))]
- [for-project ..project]
- [for-version ..version]
+ [project ..project']
+ [version ..version']
)
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index 1f8068111..aa7b9abce 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -61,6 +61,7 @@
[<group> "groupId"]
[<name> "artifactId"]
[<version> "version"]
+ [<versioning> "versioning"]
[<versions> "versions"]
[<last-updated> "lastUpdated"]
[<metadata> "metadata"]
@@ -87,8 +88,10 @@
xml.attributes
(list (..write-group (get@ #group value))
(..write-name (get@ #name value))
- (..write-versions (get@ #versions value))
- (..write-last-updated (get@ #last-updated value)))))
+ (#xml.Node ..<versioning>
+ xml.attributes
+ (list (..write-versions (get@ #versions value))
+ (..write-last-updated (get@ #last-updated value)))))))
(def: (sub tag parser)
(All [a] (-> xml.Tag (Parser a) (Parser a)))
@@ -136,9 +139,13 @@
($_ <>.and
(<xml>.somewhere (..text ..<group>))
(<xml>.somewhere (..text ..<name>))
- (<xml>.somewhere (<| (..sub ..<versions>)
- (<>.many (..text ..<version>))))
- (<xml>.somewhere ..last-updated-parser)
+ (<| (..sub ..<versioning>)
+ ($_ <>.and
+ (<| <xml>.somewhere
+ (..sub ..<versions>)
+ (<>.many (..text ..<version>)))
+ (<xml>.somewhere ..last-updated-parser)
+ ))
)))
(def: #export equivalence
diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux
index a94ac33c4..1919d06ca 100644
--- a/stdlib/source/program/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/program/aedifex/metadata/snapshot.lux
@@ -212,7 +212,7 @@
(Parser Build)
(<text>.embed (<>.codec n.decimal
(<text>.many <text>.decimal))
- (..text ..<timestamp>)))
+ (..text ..<build-number>)))
(exception: #export (time-stamp-mismatch {expected Time-Stamp} {actual Text})
(exception.report
@@ -226,7 +226,7 @@
(def: (snapshot-parser expected)
(-> Value (Parser Type))
- (<| (..sub ..<snapshot-versions>)
+ (<| (..sub ..<snapshot-version>)
(do <>.monad
[#let [[version time-stamp build] expected]
updated (<xml>.somewhere (..text ..<updated>))
@@ -243,8 +243,8 @@
(do <>.monad
[[time-stamp build] (<| <xml>.somewhere
(..sub ..<snapshot>)
- (<>.and ..time-stamp-parser
- ..build-parser))
+ (<>.and (<xml>.somewhere ..time-stamp-parser)
+ (<xml>.somewhere ..build-parser)))
last-updated (<xml>.somewhere ..last-updated-parser)
_ (<>.assert (exception.construct ..time-stamp-mismatch [time-stamp (instant-format last-updated)])
(\ instant.equivalence = time-stamp last-updated))
@@ -268,7 +268,7 @@
#version version
#versioning versioning}))))
-(def: versioning
+(def: versioning-equivalence
(Equivalence Versioning)
($_ product.equivalence
instant.equivalence
@@ -282,5 +282,5 @@
text.equivalence
text.equivalence
text.equivalence
- ..versioning
+ ..versioning-equivalence
))