# Style sheet for Standard ML
# Copyright (c) 1999 Franklin Chen, Daniel Wang, 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.
#

# This was based on caml.ssh.

style "Standard ML" is

written by "Franklin Chen <Franklin.Chen@cs.cmu.edu>, Daniel Wang <danwang@CS.Princeton.EDU>"
version is 1.1

documentation is
  "This style sheet takes advantage of the Symbol font to replace many"
  "ASCII operators with their natural graphical representation.  This"
  "is enabled only at heavy highlighting."
end documentation


first alphabet is
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!"
second alphabet is
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\'!"
case sensitive

keywords in Keyword are
   int, char, string,
   real, unit, list, bool, vector, word, option, nil, false, true
end keywords

keywords in Keyword_strong are
   abstraction, and,
   abstype, as, "case", do, datatype, else, eqtype, "end", exception, fn, fun,
   handle, if, "in", include, infix, infixr, let, local, nonfix, of, o, op,
   open, raise, rec, ref, sharing, sig, signature, struct, structure,
   functor, funsig, then, type, val, where, while, withtype
end keywords

operators in Keyword_strong are
  ::
end operators

operators are
   -> \rightarrow,
   => \Rightarrow
end operators

optional keywords are
   fn \lambda,
   not \not,
   andalso \wedge,
   orelse \vee,
   o \circ
end keywords

optional operators are
   <> \neq,
   <= \leq,
   >= \geq,
   *  \times,
   'a \alpha,
   'b \beta,
   'c \gamma,
   'd \delta
end operators

sequences are
    "(*" Comment Comment "*)" Comment,
    C-string
end sequences

end style