summaryrefslogtreecommitdiff
path: root/shell/EXPRESSIONS
blob: 722e8977d0aa36d0d78df375a206763ccd14391c (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
{ "default-sh":
  { "vars": ["defaults-transition", "fieldname"]
  , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ [ "fieldname"
        , {"type": "var", "name": "fieldname", "default": "defaults"}
        ]
      , ["provider", "sh"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      , [ "provided sh"
        , { "type": "join"
          , "$1": {"type": "CALL_EXPRESSION", "name": "list_provider"}
          }
        ]
      , [ "sh"
        , { "type": "if"
          , "cond": {"type": "var", "name": "provided sh"}
          , "then": {"type": "var", "name": "provided sh"}
          , "else": "sh"
          }
        ]
      ]
    , "body": {"type": "var", "name": "sh"}
    }
  }
, "NON_SYSTEM":
  { "vars": ["defaults-transition", "fieldname"]
  , "expression":
    { "type": "map_union"
    , "$1":
      { "type": "foreach"
      , "var": "x"
      , "range":
        { "type": "FIELD"
        , "name": {"type": "var", "name": "fieldname", "default": "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"}
        }
      }
    }
  }
, "sh":
  { "vars": ["defaults-transition", "TOOLCHAIN_DIR", "fieldname"]
  , "imports": {"default-sh": "default-sh", "NON_SYSTEM": "NON_SYSTEM"}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["sh", {"type": "CALL_EXPRESSION", "name": "default-sh"}]
      , ["NON_SYSTEM", {"type": "CALL_EXPRESSION", "name": "NON_SYSTEM"}]
      , [ "sh"
        , { "type": "if"
          , "cond":
            { "type": "lookup"
            , "key": "sh"
            , "map": {"type": "var", "name": "NON_SYSTEM"}
            }
          , "then":
            { "type": "join"
            , "separator": "/"
            , "$1":
              [ "."
              , { "type": "var"
                , "name": "TOOLCHAIN_DIR"
                , "default": "toolchain"
                }
              , {"type": "var", "name": "sh"}
              ]
            }
          , "else": {"type": "var", "name": "sh"}
          }
        ]
      ]
    , "body": {"type": "var", "name": "sh"}
    }
  }
, "PATH":
  { "vars": ["fieldname", "defaults-transition"]
  , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
  , "expression":
    { "type": "let*"
    , "bindings":
      [ [ "fieldname"
        , {"type": "var", "name": "fieldname", "default": "defaults"}
        ]
      , ["provider", "PATH"]
      , ["transition", {"type": "var", "name": "defaults-transition"}]
      ]
    , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
    }
  }
}