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