summaryrefslogtreecommitdiff
path: root/CC/foreign/EXPRESSIONS
blob: 2988b32ba76395eb8335ac0985ce80be5d2616a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{ "default-MAKE":
  { "vars": ["defaults-transition"]
  , "imports": {"list_provider": ["./", "../..", "field_list_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "foreign-defaults"]
      , ["provider", "MAKE"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
    }
  }
, "default-CMAKE":
  { "vars": ["defaults-transition"]
  , "imports": {"list_provider": ["./", "../..", "field_list_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "foreign-defaults"]
      , ["provider", "CMAKE"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
    }
  }
, "default-ENV":
  { "vars": ["defaults-transition"]
  , "imports": {"map_provider": ["", "field_map_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "foreign-defaults"]
      , ["provider", "ENV"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      , ["default", {"type": "empty_map"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"}
    }
  }
, "default-PATH":
  { "vars": ["defaults-transition"]
  , "imports": {"list_provider": ["./", "../..", "field_list_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "foreign-defaults"]
      , ["provider", "PATH"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
    }
  }
, "default-TOOLCHAIN":
  { "vars": ["defaults-transition"]
  , "imports": {"map_provider": ["", "field_map_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "foreign-defaults"]
      , ["provider", "TOOLCHAIN"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      , ["default", {"type": "empty_map"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"}
    }
  }
, "default-NON_SYSTEM_TOOLS":
  { "vars": ["defaults-transition"]
  , "expression":
    { "type": "map_union"
    , "$1":
      { "type": "foreach"
      , "var": "x"
      , "range": {"type": "FIELD", "name": "foreign-defaults"}
      , "body":
        { "type": "DEP_PROVIDES"
        , "dep": {"type": "var", "name": "x"}
        , "provider": "NON_SYSTEM_TOOLS"
        , "transition":
          { "type": "var"
          , "name": "defaults-transition"
          , "default": {"type": "empty_map"}
          }
        , "default": {"type": "empty_map"}
        }
      }
    }
  }
, "strip-prefix":
  { "doc":
    [ "Returns list of artifact maps (each map contains a single artifact)"
    , "with the given prefix being stripped from their path."
    ]
  , "vars": ["artifacts", "paths", "prefix"]
  , "vars_doc":
    { "artifacts": ["A single map containing all artifacts."]
    , "paths": ["List of (unprefixed) artifacts paths to consider."]
    , "prefix": ["Prefix to strip from the artifact's path."]
    }
  , "expression":
    { "type": "foreach"
    , "var": "path"
    , "range": {"type": "var", "name": "paths"}
    , "body":
      { "type": "singleton_map"
      , "key": {"type": "var", "name": "path"}
      , "value":
        { "type": "lookup"
        , "key":
          { "type": "join"
          , "separator": "/"
          , "$1":
            [ {"type": "var", "name": "prefix"}
            , {"type": "var", "name": "path"}
            ]
          }
        , "map": {"type": "var", "name": "artifacts"}
        }
      }
    }
  }
}