#!/usr/bin/env perl

my $usage = <<EOT;
usage: config-enum enum [file ...]

Returns the elements from an enum declaration.

"Best effort": we're not building an entire C interpreter here!
EOT

use warnings;
use strict;
use Getopt::Std;

my %opts;

if (!getopts("", \%opts) || @ARGV < 1) {
	print $usage;
	exit 2;
}

my $enum = shift;

my $in_enum = 0;

while (<>) {
	# comments
	s/\/\*.*\*\///;
	if (m/\/\*/) {
		while ($_ .= <>) {
			last if s/\/\*.*\*\///s;
		}
	}

	# preprocessor stuff
	next if /^#/;

	# find our enum
	$in_enum = 1 if s/^\s*enum\s+${enum}(?:\s|$)//;
	next unless $in_enum;

	# remove explicit values
	s/\s*=[^,]+,/,/g;

	# extract each identifier
	while (m/\b([a-z_][a-z0-9_]*)\b/ig) {
		print $1, "\n";
	}

	#
	# don't exit: there may be multiple versions of the same enum, e.g.
	# inside different #ifdef blocks. Let's explicitly return all of
	# them and let external tooling deal with it.
	#
	$in_enum = 0 if m/}\s*;/;
}

exit 0;
