# Style sheet for Small 2.1.0
# https://www.compuphase.com/small.htm
#
# Copyright (C) Christophe Continente, 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, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#

style Small is
written by "Christophe Continente <contin_c@epita.fr>"
version is 0.2
requires a2ps version 4.13c

documentation is
   "This style does not highlight the function definitions."
end documentation

alphabets are
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@"

case sensitive

keywords in Keyword are
   const, enum, forward,  native, new, operator, public, static,
   stock,
   /^#[ ]*(assert|define|e(l(if|se)|ndif|mit|ndinput)|include|pragma)/
end keywords

keywords in Keyword_strong are
   assert, break, "case", continue, default, do, else, exit, for,
   goto, if, return, sleep, switch, while
end keywords

optional operators are
  (/(case)([ 	]+)(.+)([ 	]*:)/
   \1 Keyword_strong, \2 Plain, \3 Label, \4 Plain)
end operators

optional operators are
   -> \rightarrow,
   && \wedge,
   || \vee,
   != \neq,
   == \equiv,
   <= \leq,
   >= \geq,
   ! \not,
   # We need to protect these, so that <= is not replaced in <<=
   <<=,
   >>=,
   >>>=,
   >>>,
   char,
   defined,
   sizeof
end operators

sequences are
    "/*" Comment "*/",
    "//" Comment,
    C-string
end sequences

end style
