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