1#!/usr/bin/env python3 2# 3# Copyright 2017-2021 The Khronos Group Inc. 4# SPDX-License-Identifier: Apache-2.0 5 6# nextfree.py - determine the next unused extension numbers. 7# Use this when registering a new extension 8# 9# Use: nextfree.py 10 11import copy, os, re, string, sys 12 13def write(*args, **kwargs): 14 file = kwargs.pop('file', sys.stdout) 15 end = kwargs.pop('end', '\n') 16 file.write(' '.join([str(arg) for arg in args])) 17 file.write(end) 18 19# Load the registry 20file = 'registry.py' 21exec(open(file).read()) 22 23# Track each number separately 24keys = { 'arbnumber', 'number', 'esnumber', 'scnumber' } 25max = {} 26for k in keys: 27 max[k] = 0 28 29# Loop over all extensions updating the max value 30for name,v in registry.items(): 31 for k in keys: 32 if k in v.keys(): 33 n = v[k] 34 if (n > max[k]): 35 max[k] = n 36 37# Report next free values 38for k in keys: 39 write('Next free', k, '=', max[k] + 1) 40