X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/0623bacc05d3cdcbac1776cf33798ee1022a6e60..f6b561d9f9cbc6fc95bbb86518372a5cb52f45a6:/data/variant.hh?ds=sidebyside diff --git a/data/variant.hh b/data/variant.hh index 0c29f7f4..65f0026e 100644 --- a/data/variant.hh +++ b/data/variant.hh @@ -1,7 +1,6 @@ # C++ skeleton for Bison -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 2002-2012 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 @@ -87,13 +86,13 @@ m4_define([b4_variant_define], /// via the current state. template struct variant - {]b4_assert_if([ + {]b4_parse_assert_if([ /// Whether something is contained. bool built; ])[ /// Empty construction. inline - variant ()]b4_assert_if([ + variant ()]b4_parse_assert_if([ : built (false)])[ {} @@ -101,7 +100,7 @@ m4_define([b4_variant_define], template inline T& build () - {]b4_assert_if([ + {]b4_parse_assert_if([ assert (!built); built = true;])[ return *new (buffer.raw) T; @@ -111,7 +110,7 @@ m4_define([b4_variant_define], template inline T& build (const T& t) - {]b4_assert_if([ + {]b4_parse_assert_if([ assert(!built); built = true;])[ return *new (buffer.raw) T(t); @@ -120,7 +119,7 @@ m4_define([b4_variant_define], /// Construct and fill. template inline - variant (const T& t)]b4_assert_if([ + variant (const T& t)]b4_parse_assert_if([ : built (true)])[ { new (buffer.raw) T(t); @@ -130,7 +129,7 @@ m4_define([b4_variant_define], template inline T& as () - {]b4_assert_if([ + {]b4_parse_assert_if([ assert (built);])[ return reinterpret_cast(buffer.raw); } @@ -139,7 +138,7 @@ m4_define([b4_variant_define], template inline const T& as () const - {]b4_assert_if([ + {]b4_parse_assert_if([ assert(built);])[ return reinterpret_cast(buffer.raw); } @@ -168,7 +167,7 @@ m4_define([b4_variant_define], inline void destroy () { - as().~T();]b4_assert_if([ + as().~T();]b4_parse_assert_if([ built = false;])[ } @@ -234,7 +233,7 @@ m4_define([b4_symbol_constructor_declare_], [ static inline symbol_type make_[]b4_symbol_([$1], [id]) (dnl -b4_args(b4_symbol_if([$1], [has_type], +b4_join(b4_symbol_if([$1], [has_type], [const b4_symbol([$1], [type])& v]), b4_locations_if([const location_type& l]))); @@ -258,11 +257,11 @@ m4_define([b4_symbol_constructor_define_], [b4_symbol_if([$1], [is_token], [b4_symbol_if([$1], [has_id], [ b4_parser_class_name::symbol_type b4_parser_class_name::make_[]b4_symbol_([$1], [id]) (dnl -b4_args(b4_symbol_if([$1], [has_type], +b4_join(b4_symbol_if([$1], [has_type], [const b4_symbol([$1], [type])& v]), b4_locations_if([const location_type& l]))) { - return symbol_type (b4_args([yytranslate_ (token::b4_symbol([$1], [id]))], + return symbol_type (b4_join([token::b4_symbol([$1], [id])], b4_symbol_if([$1], [has_type], [v]), b4_locations_if([l]))); }