#!/usr/bin/perl

use strict;
use warnings;
use open ':std', ':encoding(UTF-8)';

use JSON::XS;
use FileHandle;
use Text::CSV::Easy(qw/csv_build csv_parse/);

use SQL::Beautify;
use SQL::Tokenizer;

my $file = shift @ARGV || die "requires a file\n";
my $fh = FileHandle->new($file,'r');
my $sql;
read $fh, $sql, -s $fh;
$fh->close;

my $keywords;
map { $keywords->{$_}++ } SQL::Beautify::KEYWORDS;
$keywords->{'FILE_FORMAT'}++;
$keywords->{'ROUND'}++;

my $tokens = [ SQL::Tokenizer->tokenize($sql) ];
my $i      = 0;
foreach my $token ( @{$tokens} ) {
    $tokens->[$i] = uc( $tokens->[$i] ) if ( exists $keywords->{ uc($token) } );
	$i++;
}
my $new = join '', @{$tokens};
print $new;
