]> git.saurik.com Git - bison.git/blobdiff - tests/named-refs.at
grammar: no longer detect and cure missing semicolon at end of actions
[bison.git] / tests / named-refs.at
index 75e73030a537a34f21af80c4458e030629659c35..1b76c800a986c07826e389c238e0c37a6f272764 100644 (file)
@@ -1,6 +1,6 @@
 # Named references test.                           -*- Autotest -*-
 
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 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
@@ -181,15 +181,16 @@ AT_DATA([input.txt],
 (2^2)^3 = 64
 ]])
 
-AT_BISON_CHECK([-o test.c test.y])
-AT_COMPILE([[test]])
+AT_FULL_COMPILE([[test]])
 AT_PARSER_CHECK([./test input.txt], 0, [], [stderr])
 AT_BISON_OPTION_POPDEFS
 AT_CLEANUP
 
 
 
-#######################################################################
+## ------------------------------------ ##
+## Undefined and ambiguous references.  ##
+## ------------------------------------ ##
 
 
 AT_SETUP([Undefined and ambiguous references])
@@ -250,23 +251,48 @@ exp:
 %%
 ]])
 
-AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:50.51-60: error: invalid reference: '$<ival>lo9'
-test.y:50.3-68:      symbol not found in production: lo9
-test.y:51.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
-test.y:42.1-3:       refers to: $exp at $$
-test.y:51.7:         possibly meant: $x, hiding $exp at $1
-test.y:51.41:        possibly meant: $r, hiding $exp at $4
-test.y:52.51-52: error: $l of 'exp' has no declared type
-test.y:55.40-43: error: invalid reference: '$r12'
-test.y:55.3-47:      symbol not found in production: r12
-test.y:56.29-33: error: invalid reference: '$expo'
-test.y:56.3-46:      symbol not found in production: expo
+AT_BISON_CHECK([-fcaret -o test.c test.y], 1, [],
+[[test.y:52.51-60: error: invalid reference: '$<ival>lo9'
+ | exp[x] '+' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>lo9 + $r; }
+                                                   ^^^^^^^^^^
+test.y:52.3-68:      symbol not found in production: lo9
+ | exp[x] '+' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>lo9 + $r; }
+   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+test.y:53.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
+ | exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
+                                                   ^^^^^^^^^^
+test.y:44.1-3:       refers to: $exp at $$
+ exp:
+ ^^^
+test.y:53.7:         possibly meant: $x, hiding $exp at $1
+ | exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
+       ^
+test.y:53.41:        possibly meant: $r, hiding $exp at $4
+ | exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
+                                         ^
+test.y:54.51-52: error: $l of 'exp' has no declared type
+ | exp[x] '*' { $<ival>$ = $x; } [l] exp[r] { $$ = $l * $r; }
+                                                   ^^
+test.y:57.40-43: error: invalid reference: '$r12'
+ | exp[l] '^' exp[r]  { $$ = power ($l, $r12); }
+                                        ^^^^
+test.y:57.3-47:      symbol not found in production: r12
+ | exp[l] '^' exp[r]  { $$ = power ($l, $r12); }
+   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+test.y:58.29-33: error: invalid reference: '$expo'
+ | '(' exp ')'        { $$ = $expo;           }
+                             ^^^^^
+test.y:58.3-46:      symbol not found in production: expo
+ | '(' exp ')'        { $$ = $expo;           }
+   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ]])
 AT_BISON_OPTION_POPDEFS
 AT_CLEANUP
 
-#######################################################################
+
+## ----------------------- ##
+## Misleading references.  ##
+## ----------------------- ##
 
 AT_SETUP([Misleading references])
 AT_DATA_GRAMMAR([test.y],