summaryrefslogtreecommitdiff
path: root/rules/data/EXPRESSIONS
blob: 929eaf8df25c8b77df87549cdcd88d2da381a1d5 (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
{ "field_artifacts_without":
  { "doc":
    [ "Query and merge artifacts from target_field's targets,"
    , "leaving out the specified logical paths."
    ]
  , "vars": ["fieldname", "transition", "exclude"]
  , "vars_doc":
    { "fieldname": ["The name of the target_field to query."]
    , "transition": ["The optional configuration transition for the targets."]
    , "exclude": ["The logical paths to exclude"]
    }
  , "expression":
    { "type": "disjoint_map_union"
    , "msg":
      [ "artifacts"
      , {"type": "var", "name": "fieldname"}
      , "must not overlap after dropping paths"
      , {"type": "var", "name": "exclude"}
      ]
    , "$1":
      { "type": "foreach"
      , "var": "x"
      , "range":
        {"type": "FIELD", "name": {"type": "var", "name": "fieldname"}}
      , "body":
        { "type": "map_union"
        , "$1":
          { "type": "foreach_map"
          , "range":
            { "type": "DEP_ARTIFACTS"
            , "dep": {"type": "var", "name": "x"}
            , "transition":
              { "type": "var"
              , "name": "transition"
              , "default": {"type": "empty_map"}
              }
            }
          , "body":
            { "type": "if"
            , "cond":
              { "type": "lookup"
              , "key": {"type": "var", "name": "_"}
              , "map": {"type": "var", "name": "exclude"}
              }
            , "then": {"type": "empty_map"}
            , "else":
              { "type": "singleton_map"
              , "key": {"type": "var", "name": "_"}
              , "value": {"type": "var", "name": "$_"}
              }
            }
          }
        }
      }
    }
  }
, "field_runfiles_without":
  { "doc":
    [ "Query and merge runfiles from target_field's targets,"
    , "leaving out the specified logical paths."
    ]
  , "vars": ["fieldname", "transition", "exclude"]
  , "vars_doc":
    { "fieldname": ["The name of the target_field to query."]
    , "transition": ["The optional configuration transition for the targets."]
    , "exclude": ["The logical paths to exclude"]
    }
  , "expression":
    { "type": "disjoint_map_union"
    , "msg":
      [ "artifacts"
      , {"type": "var", "name": "fieldname"}
      , "must not overlap after dropping paths"
      , {"type": "var", "name": "exclude"}
      ]
    , "$1":
      { "type": "foreach"
      , "var": "x"
      , "range":
        {"type": "FIELD", "name": {"type": "var", "name": "fieldname"}}
      , "body":
        { "type": "map_union"
        , "$1":
          { "type": "foreach_map"
          , "range":
            { "type": "DEP_RUNFILES"
            , "dep": {"type": "var", "name": "x"}
            , "transition":
              { "type": "var"
              , "name": "transition"
              , "default": {"type": "empty_map"}
              }
            }
          , "body":
            { "type": "if"
            , "cond":
              { "type": "lookup"
              , "key": {"type": "var", "name": "_"}
              , "map": {"type": "var", "name": "exclude"}
              }
            , "then": {"type": "empty_map"}
            , "else":
              { "type": "singleton_map"
              , "key": {"type": "var", "name": "_"}
              , "value": {"type": "var", "name": "$_"}
              }
            }
          }
        }
      }
    }
  }
}