[Cmake-commits] CMake branch, master, updated. v3.11.1-818-gacb9710
Kitware Robot
kwrobot at kitware.com
Wed May 16 11:55:05 EDT 2018
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.king at kitware.com>
AuthorDate: Wed May 16 15:53:49 2018 +0000
Commit: Kitware Robot <kwrobot at 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 <kwrobot at kitware.com>
Merge-request: !2081
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a33cfc1bce0a4946da166327515557b48d3a2ea
commit 7a33cfc1bce0a4946da166327515557b48d3a2ea
Author: Daniel Franke <franke at edf-online.de>
AuthorDate: Wed May 9 10:11:57 2018 +0200
Commit: Brad King <brad.king at 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 <franke at edf-online.de>
AuthorDate: Wed May 9 10:11:57 2018 +0200
Commit: Brad King <brad.king at 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 <franke at edf-online.de>
AuthorDate: Wed May 9 10:11:57 2018 +0200
Commit: Brad King <brad.king at 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
More information about the Cmake-commits
mailing list