From 54c0e9c7397908eeddf5fbed9b193e25648fb253 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 5 Sep 2021 03:25:28 -0400 Subject: De-taggification | part 3 --- stdlib/source/program/aedifex/format.lux | 8 ++-- stdlib/source/program/aedifex/parser.lux | 29 +++++--------- stdlib/source/test/aedifex/input.lux | 3 +- stdlib/source/test/aedifex/parser.lux | 69 ++++++++++---------------------- 4 files changed, 38 insertions(+), 71 deletions(-) (limited to 'stdlib/source') diff --git a/stdlib/source/program/aedifex/format.lux b/stdlib/source/program/aedifex/format.lux index af03bf827..f6b737fdf 100644 --- a/stdlib/source/program/aedifex/format.lux +++ b/stdlib/source/program/aedifex/format.lux @@ -27,10 +27,10 @@ #url (~ (code.text url)) #type (~ (case type #/.Repo - (' #repo) + (' "repo") #/.Manual - (' #manual)))])) + (' "manual")))])) (def: (organization [name url]) (Format /.Organization) @@ -60,7 +60,7 @@ (Format Aggregate) (|>> dictionary.entries (list\each (function (_ [key value]) - (list (code.local_tag key) value))) + (list (code.text key) value))) list\conjoint code.tuple)) @@ -141,7 +141,7 @@ (` [(~ (code.text program)) (~+ (list\each code.text parameters))])) -(def: .public (profile value) +(def: (profile value) (Format /.Profile) (`` (|> ..empty (..on_list "parents" (value@ #/.parents value) code.text) diff --git a/stdlib/source/program/aedifex/parser.lux b/stdlib/source/program/aedifex/parser.lux index 0284d3ced..315021712 100644 --- a/stdlib/source/program/aedifex/parser.lux +++ b/stdlib/source/program/aedifex/parser.lux @@ -84,22 +84,22 @@ (do {! <>.monad} [input (\ ! each (dictionary.of_list text.hash) - (.tuple (<>.some (<>.and .local_tag + (.tuple (<>.some (<>.and .text .any))))] ($_ <>.and (..singular input "name" ..name) (..singular input "url" ..url) (<>.else #/.Repo (..singular input "type" - (<>.or (.this! (' #repo)) - (.this! (' #manual)))))))) + (<>.or (.this! (' "repo")) + (.this! (' "manual")))))))) (def: organization (Parser /.Organization) (do {! <>.monad} [input (\ ! each (dictionary.of_list text.hash) - (.tuple (<>.some (<>.and .local_tag + (.tuple (<>.some (<>.and .text .any))))] ($_ <>.and (..singular input "name" ..name) @@ -110,7 +110,7 @@ (do {! <>.monad} [input (\ ! each (dictionary.of_list text.hash) - (.tuple (<>.some (<>.and .local_tag + (.tuple (<>.some (<>.and .text .any))))] ($_ <>.and (..singular input "name" ..name) @@ -127,7 +127,7 @@ (do {! <>.monad} [input (\ ! each (dictionary.of_list text.hash) - (.tuple (<>.some (<>.and .local_tag + (.tuple (<>.some (<>.and .text .any))))] ($_ <>.and (<>.maybe (..singular input "url" ..url)) @@ -183,7 +183,7 @@ (do {! <>.monad} [input (\ ! each (dictionary.of_list text.hash) - (.tuple (<>.some (<>.and .local_tag + (.tuple (<>.some (<>.and .text .any)))) .let [^parents (: (Parser (List /.Name)) (<>.else (list) @@ -260,14 +260,7 @@ (def: .public project (Parser Project) - (let [default_profile (: (Parser Project) - (\ <>.monad each - (|>> [/.default] (list) (dictionary.of_list text.hash)) - ..profile)) - multi_profile (: (Parser Project) - (\ <>.monad each - (dictionary.of_list text.hash) - (.tuple (<>.many (<>.and .text - ..profile)))))] - (<>.either multi_profile - default_profile))) + (\ <>.monad each + (dictionary.of_list text.hash) + (.tuple (<>.many (<>.and .text + ..profile))))) diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux index 39dec3ced..eef2673f8 100644 --- a/stdlib/source/test/aedifex/input.lux +++ b/stdlib/source/test/aedifex/input.lux @@ -51,7 +51,8 @@ (in (do async.monad [verdict (do //action.monad [.let [profile (|> expected - //format.profile + (//project.project //.default) + //format.project %.code (\ utf8.codec encoded))] _ (\ fs write profile //project.file) diff --git a/stdlib/source/test/aedifex/parser.lux b/stdlib/source/test/aedifex/parser.lux index 7d15e6dda..cb72c3726 100644 --- a/stdlib/source/test/aedifex/parser.lux +++ b/stdlib/source/test/aedifex/parser.lux @@ -66,61 +66,34 @@ (-> //.Profile //.Profile) (revised@ #//.repositories (set.has //.default_repository))) -(def: single_profile - Test - (do random.monad - [expected @profile.random] - (_.test "Single profile." - (|> expected - //format.profile - list - (.result /.project) - (case> (#try.Success actual) - (|> expected - ..with_default_sources - ..with_default_repository - (//project.project //.default) - (\ //project.equivalence = actual)) - - (#try.Failure error) - false))))) - (def: (with_empty_profile project) (-> Project Project) (if (dictionary.empty? project) (//project.project //.default (\ //.monoid identity)) project)) -(def: multiple_profiles - Test - (do random.monad - [expected ..random] - (_.test "Multiple profiles." - (|> expected - //format.project - list - (.result /.project) - (case> (#try.Success actual) - (|> expected - ..with_empty_profile - dictionary.entries - (list\each (function (_ [name profile]) - [name (|> profile - ..with_default_sources - ..with_default_repository)])) - (dictionary.of_list text.hash) - (\ //project.equivalence = actual)) - - (#try.Failure error) - false))))) - (def: .public test Test (<| (_.covering /._) (_.covering //format._) - (_.for [/.project - //format.Format //format.profile //format.project] - ($_ _.and - ..single_profile - ..multiple_profiles - )))) + (do random.monad + [expected ..random] + (_.cover [/.project + //format.Format //format.project] + (|> expected + //format.project + list + (.result /.project) + (case> (#try.Success actual) + (|> expected + ..with_empty_profile + dictionary.entries + (list\each (function (_ [name profile]) + [name (|> profile + ..with_default_sources + ..with_default_repository)])) + (dictionary.of_list text.hash) + (\ //project.equivalence = actual)) + + (#try.Failure error) + false)))))) -- cgit v1.2.3