blob: 2a3f6e8b509d55d73f1afb09bd8140b0422f3214 [file] [log] [blame]
#!/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 -Xmx1024M -cp $SRCDIR/ludwig.jar \
Main_LALR1_Java_AST_Prototype \
-startSymbols "<ExecutableProgram>, <Body>, <Expr>, <ContainsStmt>" \
-package "org.eclipse.photran.internal.core.parser" \
-shift T_COMMA "<IoControlSpecList>" \
-reduce "<SFVarName>" "<SFDummyArgName>" \
-prec "<DeferredShapeSpecList> > <AssumedShapeSpec>" \
-prec "<BodyPlusInternals> > <Label>, T_ICON" \
-prec "<TypeBoundProcedurePart> > T_ICON" \
-shift T_IDENT "<CommonBlock>" \
-shift T_LBRACKET "<DataRef>" \
-shift T_LBRACKET "<SFDataRef>" \
-imports "import org.eclipse.photran.internal.core.lexer.*; \
import org.eclipse.photran.internal.core.analysis.binding.ScopingNode; \
import org.eclipse.photran.internal.core.SyntaxException; \
import java.io.IOException;" \
-description "An LALR(1) parser for Fortran 2008" \
-throws "IOException, LexerException, SyntaxException" \
-onError "throw new SyntaxException(parserStack.getLookahead(), describeTerminalsExpectedInCurrentState());" \
-lexerClass IAccumulatingLexer \
-parserClass Parser \
-tokenType "org.eclipse.photran.internal.core.lexer.Token" \
-autolabel true \
-genTerminalClass false \
-genLexerInterface false \
-genTokenClass false \
-separateSemanticActions true \
-separateParsingTables true \
-enablePreproc IPreprocessorReplacement \
$SRCDIR/fortran2008.bnf
echo Applying patches...
for file in *.java; do
patch $file <$SRCDIR/Copyright.patch >/dev/null
done
patch ASTSubroutineArgNode.java <$SRCDIR/ASTSubroutineArgNode.patch
echo "Done"
find . -name "*.rej"