#! /bin/sh
# This file is part of GNU epsilon, a functional language implementation

# Copyright (C) 2003 Luca Saiu

# GNU epsilon 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 2, or (at your
# option) any later version.

# GNU epsilon 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 epsilon; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.


# Create primitive_exceptions.c from primitive_exceptions:

# Output header:
echo "/* This -*- C -*- file is automatically generated. Don't edit. */" > primitive_exceptions.c
echo >> primitive_exceptions.c
echo "#include \"primitive_exceptions.h\"" >> primitive_exceptions.c
echo >> primitive_exceptions.c

# Output definition of primitive_exceptions_names:
echo "/* Names of primitive exceptions: */" >> primitive_exceptions.c
echo "const char* primitive_exceptions_names[] = {" >> primitive_exceptions.c
N=0
for E in `sort primitive_exceptions_list`; do
    echo "  "\"exceptions:$E\"\, >> primitive_exceptions.c
    N=`expr $N + 1`
done
echo }\; >> primitive_exceptions.c
echo >> primitive_exceptions.c

# Output definition of primitive_exceptions_names:
echo "/* Number of primitive exceptions: */" >> primitive_exceptions.c
echo const int primitive_exceptions_no = $N\; >> primitive_exceptions.c
