1a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#! /usr/bin/perl
2a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#
3a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# Copyright (C) 2010 Google Inc.
4a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#
5a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# Licensed under the Apache License, Version 2.0 (the "License");
6a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# you may not use this file except in compliance with the License.
7a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# You may obtain a copy of the License at
8a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#
9a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#      http://www.apache.org/licenses/LICENSE-2.0
10a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich#
11a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# Unless required by applicable law or agreed to in writing, software
12a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# distributed under the License is distributed on an "AS IS" BASIS,
13a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# See the License for the specific language governing permissions and
15a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich# limitations under the License.
16a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
17a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevichuse strict;
18a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
19a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevichmy %enumHash = ();
20a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
21a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevichwhile (my $line = <STDIN>) {
22a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  next if $line =~ /^\//;
23a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  # Skip bitfield definitions.
24a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  next if $line =~ /_BIT(\d+_|\s+)/;
25a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  if ($line !~ /^#define\s+(\S+)\s+(0x\S+)/) {
26a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich    next;
27a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  }
28a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  my $enumName = $1;
29a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  my $enumValue = $2;
30a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  next if exists($enumHash { $enumValue });
31a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  $enumHash { $enumValue } = $enumName;
32a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich  printf("GL_ENUM(%s,%s)\n", $enumValue, $enumName);
33a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich}
34a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
35a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
36a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
37a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
38a2dd6cf59962e3a21a47df29b2f243e904839ba7Jack Palevich
39