]> git.saurik.com Git - bison.git/blobdiff - tests/input.at
version 3.0.4
[bison.git] / tests / input.at
index cec82dd7d4e2884b159f83d6600f95fccea75012..895ec2021722db5628228382ae0bbd2bc4cf2a69 100644 (file)
@@ -1,6 +1,6 @@
 # Checking the Bison scanner.                    -*- Autotest -*-
 
 # Checking the Bison scanner.                    -*- Autotest -*-
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2015 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
@@ -1904,6 +1904,51 @@ m4_popdef([AT_TEST])
 AT_CLEANUP
 
 
 AT_CLEANUP
 
 
+## ----------------------- ##
+## Redefined %union name.  ##
+## ----------------------- ##
+
+AT_SETUP([[Redefined %union name]])
+
+# AT_TEST(DIRECTIVES, ERROR)
+# --------------------------
+m4_pushdef([AT_TEST],
+[AT_DATA([[input.y]],
+[$1
+%%
+exp: %empty;
+])
+
+AT_BISON_CHECK([[input.y]], [[1]], [[]],
+[$2])
+])
+
+AT_TEST([[%union foo {};
+%union {};
+%union foo {};
+%define api.value.union.name foo]],
+[[input.y:3.8-10: error: %define variable 'api.value.union.name' redefined
+input.y:1.8-10:     previous definition
+input.y:4.9-28: error: %define variable 'api.value.union.name' redefined
+input.y:3.8-10:     previous definition
+]])
+
+AT_TEST([[%define api.value.union.name {foo}]],
+[[input.y:1.9-28: error: %define variable 'api.value.union.name' requires keyword values
+input.y:1.9-28: error: %define variable 'api.value.union.name' is not used
+]])
+
+AT_TEST([[%define api.value.union.name "foo"]],
+[[input.y:1.9-28: error: %define variable 'api.value.union.name' requires keyword values
+input.y:1.9-28: error: %define variable 'api.value.union.name' is not used
+]])
+
+m4_popdef([AT_TEST])
+AT_CLEANUP
+
+
+
+
 ## -------------- ##
 ## Stray $ or @.  ##
 ## -------------- ##
 ## -------------- ##
 ## Stray $ or @.  ##
 ## -------------- ##