]> git.saurik.com Git - bison.git/blobdiff - tests/calc.at
* src/state.h, src/state.c (state_rule_lookaheads_print): New.
[bison.git] / tests / calc.at
index ddc86464cdf823626e2a82a53742060457d59bf3..28e16f956a5096fb7bb3d92bbd90dada2fac5543 100644 (file)
@@ -1,5 +1,5 @@
 # Checking the output filenames.                         -*- Autotest -*-
 # Checking the output filenames.                         -*- Autotest -*-
-# Copyright 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
 
 # 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
 
 # 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
@@ -61,19 +61,36 @@ static int yygetc (void);
 static void yyungetc (int c);
 
 extern void perror (const char *s);
 static void yyungetc (int c);
 
 extern void perror (const char *s);
+
+/* Exercise pre-prologue dependency to %union.  */
+typedef int value_t;
+
 %}
 
 %}
 
+/* Exercise M4 quoting: '@:>@@:>@', 0.  */
+
 /* Also exercise %union. */
 %union
 {
 /* Also exercise %union. */
 %union
 {
-  int ival; /* A comment to exercise an old bug. */
+  value_t ival; /* A comment to exercise an old bug. */
 };
 
 };
 
+/* Exercise post-prologue dependency to %union.  */
+%{
+static void id (YYSTYPE *lval);
+
+/* Exercise quotes in declarations.  */
+char quote[] = "@:>@@:>@,";
+%}
+
 /* Bison Declarations */
 %token CALC_EOF 0 "end of file"
 %token <ival> NUM "number"
 %type  <ival> exp
 
 /* Bison Declarations */
 %token CALC_EOF 0 "end of file"
 %token <ival> NUM "number"
 %type  <ival> exp
 
+/* Exercise quotes in strings.  */
+%token FAKE "fake @>:@@>:@,"
+
 %nonassoc '=' /* comparison           */
 %left '-' '+'
 %left '*' '/'
 %nonassoc '=' /* comparison           */
 %left '-' '+'
 %left '*' '/'
@@ -91,9 +108,14 @@ input:
 
 line:
   '\n'
 
 line:
   '\n'
-| exp '\n' {}
+| exp '\n'
+  {
+    /* Exercise quotes in braces.  */
+    char tmp[] = "@>:@@:>@,";
+  }
 ;
 
 ;
 
+/* Exercise M4 quoting: '@:>@@:>@', 1.  */
 exp:
   NUM                { $$ = $1;             }
 | exp '=' exp
 exp:
   NUM                { $$ = $1;             }
 | exp '=' exp
@@ -115,6 +137,7 @@ exp:
 /* The input. */
 FILE *yyin;
 
 /* The input. */
 FILE *yyin;
 
+/* Exercise M4 quoting: '@:>@@:>@', 2.  */
 static void
 yyerror (const char *s)
 {
 static void
 yyerror (const char *s)
 {
@@ -236,6 +259,11 @@ power (int base, int exponent)
   return res;
 }
 
   return res;
 }
 
+void
+id (YYSTYPE* lval)
+{
+}
+
 int
 main (int argc, const char **argv)
 {
 int
 main (int argc, const char **argv)
 {
@@ -378,18 +406,18 @@ _AT_CHECK_CALC([$1],
 (2^2)^3 = 64], [486])
 
 # Some parse errors.
 (2^2)^3 = 64], [486])
 
 # Some parse errors.
-_AT_CHECK_CALC_ERROR([$1], [0 0], [10],
+_AT_CHECK_CALC_ERROR([$1], [0 0], [11],
                      [1.3-1.4: parse error, unexpected "number"])
                      [1.3-1.4: parse error, unexpected "number"])
-_AT_CHECK_CALC_ERROR([$1], [1//2], [13],
+_AT_CHECK_CALC_ERROR([$1], [1//2], [15],
                      [1.3-1.4: parse error, unexpected '/', expecting "number" or '-' or '('])
 _AT_CHECK_CALC_ERROR([$1], [error], [4],
                      [1.1-1.2: parse error, unexpected $undefined., expecting "number" or '-' or '\n' or '('])
                      [1.3-1.4: parse error, unexpected '/', expecting "number" or '-' or '('])
 _AT_CHECK_CALC_ERROR([$1], [error], [4],
                      [1.1-1.2: parse error, unexpected $undefined., expecting "number" or '-' or '\n' or '('])
-_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [19],
+_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [22],
                      [1.7-1.8: parse error, unexpected '='])
 _AT_CHECK_CALC_ERROR([$1],
                      [
 +1],
                      [1.7-1.8: parse error, unexpected '='])
 _AT_CHECK_CALC_ERROR([$1],
                      [
 +1],
-                     [13],
+                     [14],
                      [2.1-2.2: parse error, unexpected '+'])
 # Exercise error messages with EOF: work on an empty file.
 _AT_CHECK_CALC_ERROR([$1],
                      [2.1-2.2: parse error, unexpected '+'])
 # Exercise error messages with EOF: work on an empty file.
 _AT_CHECK_CALC_ERROR([$1],
@@ -402,7 +430,7 @@ _AT_CHECK_CALC_ERROR([$1],
 # associated to `error'.
 _AT_CHECK_CALC_ERROR([$1],
                      [(1 ++ 2) + (0 0) = 1],
 # associated to `error'.
 _AT_CHECK_CALC_ERROR([$1],
                      [(1 ++ 2) + (0 0) = 1],
-                     [76],
+                     [82],
 [1.5-1.6: parse error, unexpected '+', expecting "number" or '-' or '('
 1.15-1.16: parse error, unexpected "number"
 calc: error: 0 != 1])
 [1.5-1.6: parse error, unexpected '+', expecting "number" or '-' or '('
 1.15-1.16: parse error, unexpected "number"
 calc: error: 0 != 1])