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