mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
CONFIG: report parser stats with wmake/scripts/makeParser
This commit is contained in:
committed by
Andrew Heather
parent
e81fda7924
commit
f2c4d7b81b
@ -1,11 +1,13 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cd ${0%/*} || exit 1 # Run from this directory
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
|
||||||
# Manually create ragel scanner and the lemon parser header
|
# Manually create ragel scanner and lemon parser header
|
||||||
|
prefix=evalStringToScalar
|
||||||
|
|
||||||
"$WM_PROJECT_DIR/wmake/scripts/makeParser" \
|
"$WM_PROJECT_DIR/wmake/scripts/makeParser" \
|
||||||
-scanner=evalStringToScalarScanner.rl \
|
-prefix="$prefix" \
|
||||||
-parser=evalStringToScalarLemonParser.lyy \
|
-scanner=Scanner.rl \
|
||||||
;
|
-parser=LemonParser.lyy \
|
||||||
|
"$@"
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -25,8 +25,12 @@ usage() {
|
|||||||
Usage: ${0##*/} [options]
|
Usage: ${0##*/} [options]
|
||||||
|
|
||||||
options:
|
options:
|
||||||
|
-prefix=NAME Common prefix for parser and scanner
|
||||||
-parser=FILE Generate lemon parser header
|
-parser=FILE Generate lemon parser header
|
||||||
-scanner=FILE Generate ragel scanner code
|
-scanner=FILE Generate ragel scanner code
|
||||||
|
-parser Use 'LemonParser.lyy' for non-prefixed parser name
|
||||||
|
-scanner Use 'Scanner.rl' for non-prefixed scanner name
|
||||||
|
-code Generate lemon parser code
|
||||||
-remove Remove generated code
|
-remove Remove generated code
|
||||||
-h, -help Print the usage
|
-h, -help Print the usage
|
||||||
|
|
||||||
@ -40,14 +44,19 @@ USAGE
|
|||||||
# Parse arguments and options
|
# Parse arguments and options
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
unset parser scanner optRemove
|
unset prefix parser scanner optCode optRemove
|
||||||
while [ "$#" -gt 0 ]
|
while [ "$#" -gt 0 ]
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
(-h | -help*) usage ;;
|
(-h | -help*) usage ;;
|
||||||
|
|
||||||
|
(-prefix=*) prefix="${1#*=}" ;;
|
||||||
(-parser=*) parser="${1#*=}" ;;
|
(-parser=*) parser="${1#*=}" ;;
|
||||||
(-scanner=*) scanner="${1#*=}" ;;
|
(-scanner=*) scanner="${1#*=}" ;;
|
||||||
|
|
||||||
|
(-parser) parser=LemonParser.lyy ;;
|
||||||
|
(-scanner) scanner=Scanner.rl ;;
|
||||||
|
(-code) optCode=true ;;
|
||||||
(-remove) optRemove=true ;;
|
(-remove) optRemove=true ;;
|
||||||
|
|
||||||
(*) break ;;
|
(*) break ;;
|
||||||
@ -70,7 +79,8 @@ removeFile() {
|
|||||||
|
|
||||||
case "$scanner" in
|
case "$scanner" in
|
||||||
(*.rl)
|
(*.rl)
|
||||||
output="${scanner%.*}.cc"
|
input="${prefix}${scanner}"
|
||||||
|
output="${prefix}${scanner%.*}.cc"
|
||||||
|
|
||||||
if [ "$optRemove" = true ]
|
if [ "$optRemove" = true ]
|
||||||
then
|
then
|
||||||
@ -78,24 +88,33 @@ case "$scanner" in
|
|||||||
elif command -v ragel >/dev/null
|
elif command -v ragel >/dev/null
|
||||||
then
|
then
|
||||||
echo "Generating ragel scanner"
|
echo "Generating ragel scanner"
|
||||||
ragel -G2 -o "$output" "$scanner"
|
ragel -G2 -o "$output" "$input"
|
||||||
else
|
else
|
||||||
echo "No ragel, leaving scanner intact"
|
echo "No ragel, leaving scanner intact"
|
||||||
fi
|
fi
|
||||||
|
echo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
case "$parser" in
|
case "$parser" in
|
||||||
(*.ly | *.lyy)
|
(*.ly | *.lyy)
|
||||||
|
extCode=cc
|
||||||
|
input="${prefix}${parser}"
|
||||||
output="${parser%.*}.h"
|
output="${parser%.*}.h"
|
||||||
|
|
||||||
if [ "$optRemove" = true ]
|
if [ "$optRemove" = true ]
|
||||||
then
|
then
|
||||||
removeFile "$output" "lemon header"
|
removeFile "$output" "lemon header"
|
||||||
|
elif [ "$optCode" = true ]
|
||||||
|
then
|
||||||
|
echo "Generating lemon parser code ($extCode)"
|
||||||
|
"$WM_PROJECT_DIR/wmake/scripts/wrap-lemon" -e"$extCode" -s "$input"
|
||||||
else
|
else
|
||||||
echo "Generating lemon parser header"
|
echo "Generating lemon parser header"
|
||||||
"$WM_PROJECT_DIR/wmake/scripts/wrap-lemon" -header "$parser"
|
"$WM_PROJECT_DIR/wmake/scripts/wrap-lemon" -header -s "$input"
|
||||||
fi
|
fi
|
||||||
|
echo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user