1#!/usr/bin/env python 2 3"""Generate annotated_java_files.bp from a jaif file.""" 4import os 5 6PACKAGE_STRING = 'package ' 7CLASS_STRING = 'class ' 8SRC_PREFIX = 'ojluni/src/main/java/' 9 10BP_TEMPLATE = '''filegroup { 11 name: "annotated_ojluni_files", 12 export_to_make_var: "annotated_ojluni_files", 13 srcs: [ 14%s 15 ], 16}''' 17 18srcs_list = set() 19current_package = None 20with open(os.sys.argv[1], 'r') as jaif_file: 21 for line in jaif_file: 22 if line.startswith(PACKAGE_STRING): 23 current_package = line[len(PACKAGE_STRING): line.find(':')] 24 if line.startswith(CLASS_STRING) and current_package is not None: 25 current_class = line[len(CLASS_STRING): line.find(':')] 26 27 # In case of nested classes, discard substring after nested class name separator 28 nested_class_separator_index = current_class.find('$') 29 if nested_class_separator_index != -1: 30 current_class = current_class[:nested_class_separator_index] 31 32 srcs_list.add(SRC_PREFIX + current_package.replace('.', '/') + '/' + current_class + '.java') 33 34print '// Do not edit; generated using libcore/annotations/generate_annotated_java_files.py' 35print BP_TEMPLATE % ('\n'.join([' "' + src_entry + '",' for src_entry in sorted(srcs_list)]),) 36os.sys.exit(0) 37