#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 2019 OpenCFD Ltd.
# \\/ M anipulation |
#------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM, licensed under GNU General Public License
# .
#
# Script
# makeParser
#
# Description
# Pregenerate ragel code and/or lemon parser headers
#
#------------------------------------------------------------------------------
usage() {
exec 1>&2
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat</dev/null
then
echo "Removed generated $2 file"
else
echo "No generated $2 file to remove"
fi
}
case "$scanner" in
(*.rl)
input="${prefix}${scanner}"
output="${prefix}${scanner%.*}.cc"
if [ "$optRemove" = true ]
then
removeFile "$output" "ragel scanner"
elif command -v ragel >/dev/null
then
echo "Generating ragel scanner"
ragel -G2 -o "$output" "$input"
else
echo "No ragel, leaving scanner intact"
fi
echo
;;
esac
case "$parser" in
(*.ly | *.lyy)
extCode=cc
input="${prefix}${parser}"
output="${parser%.*}.h"
if [ "$optRemove" = true ]
then
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
echo "Generating lemon parser header"
"$WM_PROJECT_DIR/wmake/scripts/wrap-lemon" -header -s "$input"
fi
echo
;;
esac
#------------------------------------------------------------------------------