diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /sql/gen_yy_files.cmake | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-upstream.tar.xz mariadb-10.5-upstream.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sql/gen_yy_files.cmake')
-rw-r--r-- | sql/gen_yy_files.cmake | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sql/gen_yy_files.cmake b/sql/gen_yy_files.cmake new file mode 100644 index 00000000..da63c72c --- /dev/null +++ b/sql/gen_yy_files.cmake @@ -0,0 +1,39 @@ +if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) +endif() +file(READ "${IN}" data) +file(WRITE "${OUT1}" "") +file(WRITE "${OUT2}" "") +set(where 0) +string(REGEX REPLACE "/\\* sql_yacc\\.yy \\*/" "/* DON'T EDIT THIS FILE. IT'S GENERATED. EDIT sql_yacc.yy INSTEAD */" data "${data}") +while(NOT data STREQUAL "") + string(REGEX MATCH "^(%[ie][^\n]*\n)|((%[^ie\n]|[^%\n])[^\n]*\n)+|\n+" line "${data}") + string(LENGTH "${line}" ll) + string(SUBSTRING "${data}" ${ll} -1 data) + + if (line MATCHES "^%ifdef +${VAL1} *\n") + set(where 1) + set(line "\n") + elseif(line MATCHES "^%ifdef +${VAL2} *\n") + set(where 2) + set(line "\n") + elseif(line MATCHES "^%else( *| +.*)\n" AND where GREATER 0) + math(EXPR where "3-${where}") + set(line "\n") + elseif(line MATCHES "^%endif( *| +.*)\n") + set(where 0) + set(line "\n") + endif() + if(where STREQUAL 1) + file(APPEND "${OUT1}" "${line}") + string(REGEX REPLACE "[^\n]+" "" line "${line}") + file(APPEND "${OUT2}" "${line}") + elseif(where STREQUAL 2) + file(APPEND "${OUT2}" "${line}") + string(REGEX REPLACE "[^\n]+" "" line "${line}") + file(APPEND "${OUT1}" "${line}") + else() + file(APPEND "${OUT1}" "${line}") + file(APPEND "${OUT2}" "${line}") + endif() +endwhile() |