]> git.saurik.com Git - bison.git/blobdiff - etc/bench.pl.in
tests: do not depend on __cplusplus to decide for C++ or C output
[bison.git] / etc / bench.pl.in
index 39443d0b4671ea0a9c572be62a9aac7aa4ff6128..4d480d5eb751ade756396536f292797f83c3f318 100755 (executable)
@@ -1,24 +1,22 @@
 #! /usr/bin/perl -w
 
 #! /usr/bin/perl -w
 
-# Copyright (C) 2006 Free Software Foundation, Inc.
-# 
+# Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc.
+#
 # This file is part of Bison, the GNU Compiler Compiler.
 # This file is part of Bison, the GNU Compiler Compiler.
-# 
-# Bison is free software; you can redistribute it and/or modify
+#
+# This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-# 
-# Bison is distributed in the hope that it will be useful,
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # You should have received a copy of the GNU General Public License
-# along with autoconf; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 use IO::File;
 use Benchmark qw (:all);
 
 use IO::File;
 use Benchmark qw (:all);
 
@@ -136,8 +134,8 @@ sub calc_grammar ($$$)
     or die;
   print $out <<EOF;
 %{
     or die;
   print $out <<EOF;
 %{
+#include <assert.h>
 #include <stdio.h>
 #include <stdio.h>
-
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
@@ -272,9 +270,7 @@ yylex (void)
 
   /* Skip white space.  */
   while ((c = get_char ()) == ' ' || c == '\t')
 
   /* Skip white space.  */
   while ((c = get_char ()) == ' ' || c == '\t')
-    {
-
-    }
+    continue;
 
   /* process numbers   */
   if (c == '.' || isdigit (c))
 
   /* process numbers   */
   if (c == '.' || isdigit (c))
@@ -295,9 +291,8 @@ yylex (void)
 static int
 power (int base, int exponent)
 {
 static int
 power (int base, int exponent)
 {
+  assert (0 <= exponent);
   int res = 1;
   int res = 1;
-  if (exponent < 0)
-    exit (3);
   for (/* Niente */; exponent; --exponent)
     res *= base;
   return res;
   for (/* Niente */; exponent; --exponent)
     res *= base;
   return res;
@@ -345,14 +340,12 @@ sub bench_grammar ($)
   my ($gram) = @_;
   my %test =
     (
   my ($gram) = @_;
   my %test =
     (
-     "yacc.c-pull-impure" => '',
-     "yacc.c-pull-pure" => '%pure-parser',
-     "push.c-pull-impure" => '%skeleton "push.c"',
-     "push.c-pull-pure" => '%skeleton "push.c" %pure-parser',
-     "push.c-push-impure" => '%skeleton "push.c" %push-pull-parser',
-     "push.c-push-pure" => '%skeleton "push.c" %push-pull-parser %pure-parser',
+     "pull-impure" => '',
+     "pull-pure" => '%define api.pure',
+     "push-impure" => '%define api.push-pull "both"',
+     "push-pure" => '%define api.push-pull "both" %define api.pure',
     );
     );
-  
+
   my %bench;
   while (my ($name, $directives) = each %test)
     {
   my %bench;
   while (my ($name, $directives) = each %test)
     {