#! /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.h from primitive_exceptions:

# Output header:
echo "/* This -*- C -*- header is automatically generated. Don't edit. */" > primitive_exceptions.h
echo "#ifndef PRIMITIVE_EXCEPTIONS_H" >> primitive_exceptions.h
echo "#define PRIMITIVE_EXCEPTIONS_H" >> primitive_exceptions.h
echo >> primitive_exceptions.h

# Output the declarations for the objects defined in primitive_exceptions.c:
echo "/* Defined in primitive_exceptions.c: */" >> primitive_exceptions.h
echo "extern const char* primitive_exceptions_names[];" >> primitive_exceptions.h
echo "extern const int primitive_exceptions_no;" >> primitive_exceptions.h
echo >> primitive_exceptions.h

# Output encodings:
echo "/* Primitive exceptions encodings: */" >> primitive_exceptions.h
N=0
for E in `sort primitive_exceptions_list`; do
    echo "#define "$E" "$N >> primitive_exceptions.h
    N=`expr $N + 1`
done
echo >> primitive_exceptions.h

# Output the trailing part:
echo "#endif /* #ifndef PRIMITIVE_EXCEPTIONS_H */" >> primitive_exceptions.h
