#!/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 #------------------------------------------------------------------------------