X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/07a6e87d46f32a8248c2160ddd2345333f1c84b4..a76c741d9b2c0ec21f9f9964ed22154ab47230a6:/etc/bench.pl.in diff --git a/etc/bench.pl.in b/etc/bench.pl.in index b6143c08..5d83fc7b 100755 --- a/etc/bench.pl.in +++ b/etc/bench.pl.in @@ -1,6 +1,6 @@ #! /usr/bin/perl -w -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc. # # This file is part of Bison, the GNU Compiler Compiler. # @@ -246,7 +246,6 @@ sub generate_grammar_triangular ($$@) or die; print $out < #include @@ -285,8 +284,8 @@ for my $size (1 .. $max) { use Text::Wrap; print $out wrap ("| ", " ", - (map { "\"$_\"" } (1 .. $size)), - " END \n"), + (map { "\"$_\"" } (1 .. $size)), + " END \n"), " { \$\$ = $size; }\n"; }; print $out ";\n"; @@ -318,7 +317,9 @@ yyerror (const char *msg) int main (void) { +#if YYDEBUG yydebug = !!getenv ("YYDEBUG"); +#endif return yyparse (); } EOF @@ -370,8 +371,8 @@ sub generate_grammar_calc ($$@) or die; print $out < #include - #include #include #include @@ -410,7 +411,7 @@ static int yylex (void); %token NUM "number" %type exp -%nonassoc '=' /* comparison */ +%nonassoc '=' /* comparison */ %left '-' '+' %left '*' '/' %left NEG /* negation--unary minus */ @@ -527,9 +528,8 @@ yylex (void) static int power (int base, int exponent) { + assert (0 <= exponent); int res = 1; - if (exponent < 0) - exit (3); for (/* Niente */; exponent; --exponent) res *= base; return res; @@ -543,6 +543,10 @@ main (int argc, const char **argv) int count = 0; int status; +#if YYDEBUG + yydebug = !!getenv ("YYDEBUG"); +#endif + input = fopen ("calc.input", "r"); if (!input) { @@ -635,13 +639,13 @@ EOF %% result: - text { /* Throw away the result. */ } + text { /* Throw away the result. */ } ; text: - /* nothing */ { /* This will generate an empty string */ } -| text TEXT { std::swap ($$, $2); } -| text NUMBER { $$ = string_cast($2); } + /* nothing */ { /* This will generate an empty string */ } +| text TEXT { std::swap ($$, $2); } +| text NUMBER { $$ = string_cast($2); } ; EOF } @@ -658,13 +662,13 @@ EOF %% result: - text { delete $1; } + text { delete $1; } ; text: - /* nothing */ { $$ = new std::string; } -| text TEXT { delete $1; $$ = $2; } -| text NUMBER { delete $1; $$ = new std::string (string_cast ($2)); } + /* nothing */ { $$ = new std::string; } +| text TEXT { delete $1; $$ = $2; } +| text NUMBER { delete $1; $$ = new std::string (string_cast ($2)); } ; EOF } @@ -891,7 +895,7 @@ sub bench_push_parser () qw( [ %d api.pure ] & - [ %d api.push_pull=both ] + [ %d api.push-pull=both ] )); }