From 168b97a5c52560b3fe892bafeb1cc719ce3d0514 Mon Sep 17 00:00:00 2001 From: Matthias Maennich <matthias@maennich.net> Date: Tue, 29 Aug 2017 14:58:34 +0200 Subject: Lexer: add a helper script to automate generating the lexers note: this depends on - a suitable flex version in PATH (currently 2.6.4) - a suitable version of 'sed' in PATH (e.g. GNU sed) Signed-off-by: Matthias Maennich <matthias@maennich.net> --- Utilities/Scripts/regenerate-lexers.bash | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 Utilities/Scripts/regenerate-lexers.bash diff --git a/Utilities/Scripts/regenerate-lexers.bash b/Utilities/Scripts/regenerate-lexers.bash new file mode 100755 index 0000000..22b681f --- /dev/null +++ b/Utilities/Scripts/regenerate-lexers.bash @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -e + +pushd "${BASH_SOURCE%/*}/../../Source/LexerParser" > /dev/null + +for lexer in \ + CommandArgument \ + DependsJava \ + Expr \ + Fortran +do + echo "Generating Lexer ${lexer}" + flex --nounistd -DFLEXINT_H --noline --header-file=cm${lexer}Lexer.h -ocm${lexer}Lexer.cxx cm${lexer}Lexer.in.l + sed -i 's/\s*$//' cm${lexer}Lexer.h cm${lexer}Lexer.cxx # remove trailing whitespaces + sed -i '${/^$/d;}' cm${lexer}Lexer.h cm${lexer}Lexer.cxx # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' cm${lexer}Lexer.cxx # add cmStandardLexer.h include +done + + +# these lexers (at the moment only the ListFileLexer) are compiled as C and do not generate a header +for lexer in ListFile +do + + echo "Generating Lexer ${lexer}" + flex --nounistd -DFLEXINT_H --noline -ocm${lexer}Lexer.c cm${lexer}Lexer.in.l + sed -i 's/\s*$//' cm${lexer}Lexer.c # remove trailing whitespaces + sed -i '${/^$/d;}' cm${lexer}Lexer.c # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' cm${lexer}Lexer.c # add cmStandardLexer.h include + +done + +popd > /dev/null -- cgit v0.12