This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, master has been updated via acb97101628d900aca9bfc869f168c1f2bd1de30 (commit) via 7a33cfc1bce0a4946da166327515557b48d3a2ea (commit) via 3d382a494fd8d4aad1a4206559c316138441098d (commit) via 5cd9f5c9656660bbe1995ab308f7d322226536a5 (commit) from 9d143ce38cca0f8631655f5c19c8d454359ebb6f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=acb97101628d900aca9bfc869f168c1f2bd1de30 commit acb97101628d900aca9bfc869f168c1f2bd1de30 Merge: 9d143ce 7a33cfc Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed May 16 15:53:49 2018 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed May 16 11:53:54 2018 -0400 Merge topic 'regenerate-lexer-parser' 7a33cfc1bc regenerate-parsers.bash: Add script to automate parser generation 3d382a494f regenerate-lexers.bash: Add option to check timestamps 5cd9f5c965 regenerate-lexers.bash: Factor file names into variables Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !2081 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a33cfc1bce0a4946da166327515557b48d3a2ea commit 7a33cfc1bce0a4946da166327515557b48d3a2ea Author: Daniel Franke <fra...@edf-online.de> AuthorDate: Wed May 9 10:11:57 2018 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Wed May 16 11:47:44 2018 -0400 regenerate-parsers.bash: Add script to automate parser generation This depends on - a suitable flex version in PATH (currently 3.0.4) - a suitable version of 'sed' in PATH (e.g. GNU sed) diff --git a/Utilities/Scripts/regenerate-parsers.bash b/Utilities/Scripts/regenerate-parsers.bash new file mode 100755 index 0000000..6fb35c0 --- /dev/null +++ b/Utilities/Scripts/regenerate-parsers.bash @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -e + +forced=1 +if [[ "${1}" = "make" ]]; then + forced=0 +fi + +pushd "${BASH_SOURCE%/*}/../../Source/LexerParser" > /dev/null + +for parser in \ + CommandArgument \ + DependsJava \ + Expr \ + Fortran +do + in_file=cm${parser}Parser.y + cxx_file=cm${parser}Parser.cxx + h_file=cm${parser}ParserTokens.h + prefix=cm${parser}_yy + + if [[ (${in_file} -nt ${cxx_file}) || (${in_file} -nt ${h_file}) || (${forced} -gt 0) ]]; then + echo "Generating Parser ${parser}" + bison --yacc --name-prefix=${prefix} --defines=${h_file} -o${cxx_file} ${in_file} + sed -i '/\/\* Else will try to reuse/ i\ +#if 0 +/^yyerrlab1:/ a\ +#endif +' ${cxx_file} + else + echo "Skipped generating Parser ${parser}" + fi +done + + +popd > /dev/null https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3d382a494fd8d4aad1a4206559c316138441098d commit 3d382a494fd8d4aad1a4206559c316138441098d Author: Daniel Franke <fra...@edf-online.de> AuthorDate: Wed May 9 10:11:57 2018 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Wed May 16 11:47:41 2018 -0400 regenerate-lexers.bash: Add option to check timestamps diff --git a/Utilities/Scripts/regenerate-lexers.bash b/Utilities/Scripts/regenerate-lexers.bash index 85cfd80..b09f25b 100755 --- a/Utilities/Scripts/regenerate-lexers.bash +++ b/Utilities/Scripts/regenerate-lexers.bash @@ -2,6 +2,11 @@ set -e +forced=1 +if [[ "${1}" = "make" ]]; then + forced=0 +fi + pushd "${BASH_SOURCE%/*}/../../Source/LexerParser" > /dev/null for lexer in \ @@ -14,11 +19,15 @@ do h_file=cm${lexer}Lexer.h in_file=cm${lexer}Lexer.in.l + if [[ (${in_file} -nt ${cxx_file}) || (${in_file} -nt ${h_file}) || (${forced} -gt 0) ]]; then echo "Generating Lexer ${lexer}" - flex --nounistd -DFLEXINT_H --noline --header-file=${h_file} -o${cxx_file} ${in_file} - sed -i 's/\s*$//' ${h_file} ${cxx_file} # remove trailing whitespaces - sed -i '${/^$/d;}' ${h_file} ${cxx_file} # remove blank line at the end - sed -i '1i#include "cmStandardLexer.h"' ${cxx_file} # add cmStandardLexer.h include + flex --nounistd -DFLEXINT_H --noline --header-file=${h_file} -o${cxx_file} ${in_file} + sed -i 's/\s*$//' ${h_file} ${cxx_file} # remove trailing whitespaces + sed -i '${/^$/d;}' ${h_file} ${cxx_file} # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' ${cxx_file} # add cmStandardLexer.h include + else + echo "Skipped generating Lexer ${lexer}" + fi done @@ -28,11 +37,15 @@ do c_file=cm${lexer}Lexer.c in_file=cm${lexer}Lexer.in.l - echo "Generating Lexer ${lexer}" - flex --nounistd -DFLEXINT_H --noline -o${c_file} ${in_file} - sed -i 's/\s*$//' ${c_file} # remove trailing whitespaces - sed -i '${/^$/d;}' ${c_file} # remove blank line at the end - sed -i '1i#include "cmStandardLexer.h"' ${c_file} # add cmStandardLexer.h include + if [[ (${in_file} -nt ${c_file}) || (${forced} -gt 0) ]]; then + echo "Generating Lexer ${lexer}" + flex --nounistd -DFLEXINT_H --noline -o${c_file} ${in_file} + sed -i 's/\s*$//' ${c_file} # remove trailing whitespaces + sed -i '${/^$/d;}' ${c_file} # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' ${c_file} # add cmStandardLexer.h include + else + echo "Skipped generating Lexer ${lexer}" + fi done https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5cd9f5c9656660bbe1995ab308f7d322226536a5 commit 5cd9f5c9656660bbe1995ab308f7d322226536a5 Author: Daniel Franke <fra...@edf-online.de> AuthorDate: Wed May 9 10:11:57 2018 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Wed May 16 11:47:37 2018 -0400 regenerate-lexers.bash: Factor file names into variables diff --git a/Utilities/Scripts/regenerate-lexers.bash b/Utilities/Scripts/regenerate-lexers.bash index 22b681f..85cfd80 100755 --- a/Utilities/Scripts/regenerate-lexers.bash +++ b/Utilities/Scripts/regenerate-lexers.bash @@ -10,23 +10,29 @@ for lexer in \ Expr \ Fortran do + cxx_file=cm${lexer}Lexer.cxx + h_file=cm${lexer}Lexer.h + in_file=cm${lexer}Lexer.in.l + 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 + flex --nounistd -DFLEXINT_H --noline --header-file=${h_file} -o${cxx_file} ${in_file} + sed -i 's/\s*$//' ${h_file} ${cxx_file} # remove trailing whitespaces + sed -i '${/^$/d;}' ${h_file} ${cxx_file} # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' ${cxx_file} # 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 + c_file=cm${lexer}Lexer.c + in_file=cm${lexer}Lexer.in.l 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 + flex --nounistd -DFLEXINT_H --noline -o${c_file} ${in_file} + sed -i 's/\s*$//' ${c_file} # remove trailing whitespaces + sed -i '${/^$/d;}' ${c_file} # remove blank line at the end + sed -i '1i#include "cmStandardLexer.h"' ${c_file} # add cmStandardLexer.h include done ----------------------------------------------------------------------- Summary of changes: Utilities/Scripts/regenerate-lexers.bash | 39 +++++++++++++++++++++-------- Utilities/Scripts/regenerate-parsers.bash | 37 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 10 deletions(-) create mode 100755 Utilities/Scripts/regenerate-parsers.bash hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits