# Style sheet for C++
# Copyright (c) 1995-2000 Akim Demaille, Miguel Santana
#

#
# This file is part of a2ps.
#
# 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
# the Free Software Foundation; either version 3, 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.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING.  If not, see
# <https://www.gnu.org/licenses/gpl-3.0.html>.
#

# Thanks to Edouard Jactat and Falk Hueffner for their comments.

style "C++" is

written by "Akim Demaille <akim@freefriends.org>"
version is 1.6
requires a2ps version 4.12l

documentation is
  "Should handle all known variations of C++.  Most declarations (classes"
  "etc.) are not highlighted as they should be.  Please, step forward!"
end documentation

alphabets are
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%"
case sensitive

ancestors are
   c
end ancestors


# Some types that are not part of C
keywords in Keyword are

   bool, const_cast, dynamic_cast, explicit, false, mutable,
   reinterpret_cast, static_cast, true, typeid, typename, wchar_t

end keywords


# Some keywords not in C
keywords in Keyword_strong are

   catch, class, delete, export, friend, namespace, new, operator,
   private, protected, public, template, this, throw, try, using,
   virtual

end keywords

# English operators
keywords in Keyword_strong are

   and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor,
   xor_eq

end keywords

# C style yet defines `//' because it is common today in plain C
end style
