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

# Copyright (C) 2002, 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.


# Output the head part of eamlasparser.y:
echo "/* This file is automatically generated. Don't edit. */" > eamlasparser.y
cat eamlasparser_y.head >> eamlasparser.y

# We need to fill all_c_instructions/:
./make_all_c_instructions

# Create the middle part:
cd all_c_instructions
for I in *; do
    if test $I != "CVS"; then
	echo "%token INSTRUCTION_$I" >> ../eamlasparser.y
    fi
done
cd ..

echo >> eamlasparser.y
echo "%%" >> eamlasparser.y
echo >> eamlasparser.y

cd c_instructions
for CATEGORY in *; do
    if test $CATEGORY != "CVS"; then
	cd $CATEGORY
	for I in *; do
	    if test $I != "CVS"; then
		echo "opcode_$CATEGORY: INSTRUCTION_$I;" \
		    >> ../../eamlasparser.y
	    fi
	done
	cd ..
	echo >> ../eamlasparser.y
    fi
done
cd ..

# Output the tail part of eamlasparser.y:
cat eamlasparser_y.tail >> eamlasparser.y
