X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=generate-command-parser.pl;h=052e4c66338c72076b6e7121eedeec3172d6b63f;hp=a7687c7bc480ab91d9e63c0cc13c2c94bec434ae;hb=HEAD;hpb=633a9f7b1475ffd5c72489bc6bd2d224c441c9a9;ds=sidebyside diff --git a/generate-command-parser.pl b/generate-command-parser.pl index a7687c7b..052e4c66 100755 --- a/generate-command-parser.pl +++ b/generate-command-parser.pl @@ -77,7 +77,7 @@ for my $line (@lines) { ($line =~ / ^\s* # skip leading whitespace ([a-z_]+ \s* = \s*|) # optional identifier - (.*?) -> \s* # token + (.*?) -> \s* # token (.*) # optional action /x); @@ -116,17 +116,16 @@ my @keys = sort { (length($b) <=> length($a)) or ($a cmp $b) } keys %states; open(my $enumfh, '>', "GENERATED_${prefix}_enums.h"); -# XXX: we might want to have a way to do this without a trailing comma, but gcc -# seems to eat it. my %statenum; say $enumfh 'typedef enum {'; my $cnt = 0; for my $state (@keys, '__CALL') { - say $enumfh " $state = $cnt,"; + say $enumfh ',' if $cnt > 0; + print $enumfh " $state = $cnt"; $statenum{$state} = $cnt; $cnt++; } -say $enumfh '} cmdp_state;'; +say $enumfh "\n} cmdp_state;"; close($enumfh); # Third step: Generate the call function. @@ -225,7 +224,7 @@ for my $state (@keys) { $next_state = '__CALL'; } my $identifier = $token->{identifier}; - say $tokfh qq| { "$token_name", "$identifier", $next_state, { $call_identifier } }, |; + say $tokfh qq| { "$token_name", "$identifier", $next_state, { $call_identifier } },|; } say $tokfh '};'; }