1# Copyright 2019 Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15# Shared utilities for Emboss back ends. 16 17load("@rules_python//python:py_library.bzl", "py_library") 18load("@rules_python//python:py_test.bzl", "py_test") 19 20package( 21 default_visibility = ["//compiler:__subpackages__"], 22) 23 24py_library( 25 name = "ir_data", 26 srcs = [ 27 "ir_data.py", 28 "ir_data_fields.py", 29 "ir_data_utils.py", 30 ], 31 deps = [], 32) 33 34py_test( 35 name = "ir_data_fields_test", 36 srcs = ["ir_data_fields_test.py"], 37 deps = [":ir_data"], 38) 39 40py_test( 41 name = "ir_data_utils_test", 42 srcs = ["ir_data_utils_test.py"], 43 deps = [":expression_parser", ":ir_data"], 44) 45 46py_library( 47 name = "expression_parser", 48 srcs = ["expression_parser.py"], 49 deps = [ 50 "//compiler/front_end:module_ir", 51 "//compiler/front_end:parser", 52 "//compiler/front_end:tokenizer", 53 ], 54) 55 56py_library( 57 name = "ir_util", 58 srcs = ["ir_util.py"], 59 deps = [":ir_data"], 60) 61 62py_test( 63 name = "ir_util_test", 64 srcs = ["ir_util_test.py"], 65 python_version = "PY3", 66 deps = [ 67 ":expression_parser", 68 ":ir_data", 69 ":ir_util", 70 ], 71) 72 73py_library( 74 name = "attribute_util", 75 srcs = ["attribute_util.py"], 76 deps = [ 77 ":error", 78 ":ir_data", 79 ":ir_util", 80 ":traverse_ir", 81 ], 82) 83 84py_library( 85 name = "simple_memoizer", 86 srcs = ["simple_memoizer.py"], 87 deps = [], 88) 89 90py_test( 91 name = "simple_memoizer_test", 92 srcs = ["simple_memoizer_test.py"], 93 python_version = "PY3", 94 deps = [ 95 ":simple_memoizer", 96 ], 97) 98 99py_library( 100 name = "test_util", 101 testonly = 1, 102 srcs = ["test_util.py"], 103 deps = [], 104) 105 106py_test( 107 name = "test_util_test", 108 srcs = ["test_util_test.py"], 109 python_version = "PY3", 110 deps = [ 111 ":test_util", 112 "//compiler/util:ir_data", 113 "//compiler/util:parser_types", 114 ], 115) 116 117py_library( 118 name = "traverse_ir", 119 srcs = ["traverse_ir.py"], 120 deps = [ 121 ":simple_memoizer", 122 ":ir_data", 123 ], 124) 125 126py_test( 127 name = "traverse_ir_test", 128 srcs = ["traverse_ir_test.py"], 129 python_version = "PY3", 130 deps = [ 131 ":traverse_ir", 132 ":ir_data", 133 ], 134) 135 136py_library( 137 name = "parser_types", 138 srcs = ["parser_types.py"], 139 deps = [ 140 ":ir_data", 141 ], 142) 143 144py_test( 145 name = "parser_types_test", 146 srcs = ["parser_types_test.py"], 147 python_version = "PY3", 148 deps = [ 149 ":parser_types", 150 ":ir_data", 151 ], 152) 153 154py_library( 155 name = "error", 156 srcs = [ 157 "error.py", 158 ], 159 deps = [ 160 ":parser_types", 161 ], 162) 163 164py_test( 165 name = "error_test", 166 srcs = ["error_test.py"], 167 python_version = "PY3", 168 deps = [ 169 ":error", 170 ":parser_types", 171 ], 172) 173 174py_library( 175 name = "name_conversion", 176 srcs = ["name_conversion.py"], 177 deps = [], 178) 179 180py_test( 181 name = "name_conversion_test", 182 srcs = ["name_conversion_test.py"], 183 python_version = "PY3", 184 deps = [ 185 ":name_conversion", 186 ], 187) 188 189py_library( 190 name = "resources", 191 srcs = ["resources.py"], 192 deps = [], 193) 194