summaryrefslogtreecommitdiff
path: root/CC/EXPRESSIONS
diff options
context:
space:
mode:
Diffstat (limited to 'CC/EXPRESSIONS')
-rw-r--r--CC/EXPRESSIONS23
1 files changed, 23 insertions, 0 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS
index d04591f..7ebc8ad 100644
--- a/CC/EXPRESSIONS
+++ b/CC/EXPRESSIONS
@@ -48,6 +48,29 @@
, "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
}
}
+, "defaults-base-provides":
+ { "doc": ["Query list-provider from 'base' targets (last wins)"]
+ , "vars": ["provider"]
+ , "vars_doc":
+ {"provider": ["The name of the list-provider in the provides map."]}
+ , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
+ , "expression":
+ { "type": "let*"
+ , "bindings": [["fieldname", "base"]]
+ , "body":
+ { "type": "foldl"
+ , "var": "next"
+ , "accum_var": "curr"
+ , "range": {"type": "CALL_EXPRESSION", "name": "provider_list"}
+ , "body":
+ { "type": "if"
+ , "cond": {"type": "var", "name": "next"}
+ , "then": {"type": "var", "name": "next"}
+ , "else": {"type": "var", "name": "curr"}
+ }
+ }
+ }
+ }
, "configure transition":
{ "vars": ["COMPILER_FAMILY"]
, "expression":