From cfb61be9cf81765aa23885341f7987ee7f86c9d0 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 30 Apr 2009 10:26:35 +0000 Subject: [PATCH] Clean up check_keywords.pl script, making it 'strict' and removing a few leftover unused variables. Laurent Laborde --- src/tools/check_keywords.pl | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/tools/check_keywords.pl b/src/tools/check_keywords.pl index 378aabef99..ccfae25d63 100755 --- a/src/tools/check_keywords.pl +++ b/src/tools/check_keywords.pl @@ -1,31 +1,41 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w + +use strict; # Check that the keyword lists in gram.y and kwlist.h are sane. Run from # the top directory, or pass a path to a top directory as argument. # -# $PostgreSQL: pgsql/src/tools/check_keywords.pl,v 1.1 2009/04/29 05:05:57 heikki Exp $ +# $PostgreSQL: pgsql/src/tools/check_keywords.pl,v 1.2 2009/04/30 10:26:35 heikki Exp $ + +my $path; if (@ARGV) { $path = $ARGV[0]; shift @ARGV; +} else { + $path = "."; } -if ($path eq '') { $path = "."; } - $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator +my %keyword_categories; $keyword_categories{'unreserved_keyword'} = 'UNRESERVED_KEYWORD'; $keyword_categories{'col_name_keyword'} = 'COL_NAME_KEYWORD'; $keyword_categories{'type_func_name_keyword'} = 'TYPE_FUNC_NAME_KEYWORD'; $keyword_categories{'reserved_keyword'} = 'RESERVED_KEYWORD'; -$gram_filename = "$path/src/backend/parser/gram.y"; -open(GRAM, $gram_filename) || die("Could not open $gram_filename!"); +my $gram_filename = "$path/src/backend/parser/gram.y"; +open(GRAM, $gram_filename) || die("Could not open : $gram_filename"); + +my ($S, $s, $k, $n, $kcat); +my $comment; +my @arr; +my %keywords; + line: while () { chomp; # strip record separator - @Fld = split(' ', $_, -1); $S = $_; # Make sure any braces are split @@ -50,7 +60,7 @@ line: while () { $n = (@arr = split(' ', $S)); # Ok, we're in a keyword list. Go through each field in turn - for ($fieldIndexer = 1; $fieldIndexer <= $n; $fieldIndexer++) { + for (my $fieldIndexer = 1; $fieldIndexer <= $n; $fieldIndexer++) { if ($arr[$fieldIndexer] eq '*/' && $comment) { $comment = 0; next; @@ -69,7 +79,6 @@ line: while () { if ($arr[$fieldIndexer] eq ';') { # end of keyword list - $line = ''; $kcat = ''; next; } @@ -85,6 +94,7 @@ line: while () { close GRAM; # Check that all keywords are in alphabetical order +my ($prevkword, $kword, $bare_kword); foreach $kcat (keys %keyword_categories) { $prevkword = ''; @@ -103,6 +113,7 @@ foreach $kcat (keys %keyword_categories) { # kwhashes is a hash of hashes, keyed by keyword category id, e.g. # UNRESERVED_KEYWORD. Each inner hash is a keyed by keyword id, e.g. ABORT_P # with a dummy value. +my %kwhashes; while ( my ($kcat, $kcat_id) = each(%keyword_categories) ) { @arr = @{$keywords{$kcat}}; @@ -114,10 +125,12 @@ while ( my ($kcat, $kcat_id) = each(%keyword_categories) ) { # Now read in kwlist.h -$kwlist_filename = "$path/src/include/parser/kwlist.h"; -open(KWLIST, $kwlist_filename) || die("Could not open $kwlist_filename!"); +my $kwlist_filename = "$path/src/include/parser/kwlist.h"; +open(KWLIST, $kwlist_filename) || die("Could not open : $kwlist_filename"); -$prevkwstring = ''; +my $prevkwstring = ''; +my $bare_kwname; +my %kwhash; kwlist_line: while () { my($line) = $_;