#!/bin/bash

SRCDIR=`pwd`

cd org/eclipse/photran/internal/core/parser

echo Deleting old files...
rm -f *.java

echo Generating parser and AST classes...
java -Xmx256M -cp $SRCDIR/ludwig.jar:/Users/joverbey/Documents/eclipse/ludwig-workspace/bz.over.templates/lib/js.jar \
	Main_LALR1_Java_AST_Prototype \
	-shift T_COMMA "<IoControlSpecList>" \
	-reduce "<SFVarName>" "<SFDummyArgName>" \
	-package "org.eclipse.photran.internal.core.parser" \
	-prec "<DeferredShapeSpecList> > <AssumedShapeSpec>" \
	-prec "<BodyPlusInternals> < <Label>, T_ICON" \
	-shift T_IDENT "<CommonBlock>" \
	-imports "import org.eclipse.photran.internal.core.lexer.*; \
                  import org.eclipse.photran.internal.core.analysis.binding.ScopingNode;" \
	-onError "throw new Exception(\"Syntax error: Unexpected \" + lookahead.getTerminal().toString() + \" (\" + (lookahead.getFile()==null ? \"\" : lookahead.getFile().getName() + \", \") + \"line \" + lookahead.getLine() + \", column \" + lookahead.getCol() + \")\");" \
	-lexerClass IAccumulatingLexer \
	-parserClass Parser \
	-tokenType "org.eclipse.photran.internal.core.lexer.Token" \
	-autolabel true \
	-genTerminalClass false \
	-genLexerInterface false \
	-genTokenClass false \
	-enablePreproc String \
	$SRCDIR/fortran95.bnf

echo Applying patches...
for file in *.java; do
  patch $file <$SRCDIR/Copyright.patch >/dev/null
done

echo "Done"
find . -name "*.rej"
