#!/bin/bash # Parser builder echo "merged into master.jj" echo "sparql-update is no longer the update grammar" exit 1 GRAMMAR="${GRAMMAR:-"sparql-update.jj"}" BASE="com/hp/hpl/jena/sparql/" # -------------------------------------------------------- function grammar { FILE="$1" PKG="$2" CLASS="$3" echo $1 $2 $3 DIR="../src/$BASE/$PKG" echo "---- Process grammar -- $1" ## javacc -OUTPUT_DIRECTORY=$DIR -JDK_VERSION=1.5 "${FILE}" javacc -OUTPUT_DIRECTORY=$DIR "${FILE}" RC=$? [ "$RC" = 0 ] || return ## echo "---- Create HTML" ## jjdoc -OUTPUT_FILE=${FILE%%.jj}.html "${FILE}" echo "---- Create text form" jjdoc -TEXT=true -OUTPUT_FILE=${FILE%%.jj}.txt "${FILE}" # Fix unnecessary imports echo "---- Fixing Java warnings in ${CLASS}TokenManager ..." F="$DIR/${CLASS}TokenManager.java" sed -e 's/import .*//' -e 's/MatchLoop: do/do/' < $F > F mv F $F ## # Java5+ fixups ## echo "---- Fixing Java warnings in JavaCharStream ..." ## # Deprecated: ## # public int getColumn() ## # public int getLine() ## F="$DIR/JavaCharStream.java" ## if [ -e "$F" ] ## then ## sed -e 's/@Deprecated //' \ ## -e 's/public int getColumn/@Deprecated &/' \ ## -e 's/public int getLine/@Deprecated &/' < $F > F ## mv F $F ## fi ## ## echo "---- Fixing Java warnings in ParseException ..." ## #Override: ## # public String getMessage() ## F="$DIR/ParseException.java" ## sed -e 's/@Override //' \ ## -e 's/public String getMessage/@Override &/' < $F > F ## mv F $F ## ## echo "---- Fixing Java warnings in Token ..." ## F="$DIR/Token.java" ## sed -e 's/@Override //' \ ## -e 's/public String toString/@Override &/' < $F > F ## mv F $F ## ## echo "---- Fixing Java warnings in TokenMgrError ..." ## # Override: ## # public String getMessage() ## F="$DIR/TokenMgrError.java" ## sed -e 's/@Override //' \ ## -e 's/public String getMessage/@Override &/' < $F > F ## mv F $F ## ## echo "---- Fixing Java warnings in ${CLASS}" ## F="$DIR/${CLASS}.java" ## sed -e 's/final public List ArgList/@SuppressWarnings("unchecked") &/' < $F > F ## mv F $F echo "---- Done" } if [ $# == 0 ] then set -- "$GRAMMAR" ## echo "Usage: grammar [arq|sparql|rdql]" 1>&2 ## exit 1 fi for G in "$@" do case "$G" in $GRAMMAR) grammar sparql-update.jj modify/lang/parser SPARQLUpdateParser ;; *) echo "**** Unknown grammar: $G" 1>&2 ;; esac done