瀏覽代碼

Merge topic 'remove-old-compatibility'

381c446ff7 VS: Remove support for appending a platform to the generator name
dc24d88062 Remove compatibility with CMake versions older than 3.1
90d814f024 CMP0054: Remove support for OLD behavior
292aaffb78 Source: Remove unused cmCommandArgument{Lexer,Parser}
1150fae89a CMP0053: Remove support for OLD behavior
f0b1ca4d70 CMP0052: Remove support for OLD behavior
e4fddc8e37 CMP0051: Remove support for OLD behavior

Acked-by: Kitware Robot <[email protected]>
Merge-request: !10205
Brad King 9 月之前
父節點
當前提交
7a39d926e8
共有 100 個文件被更改,包括 143 次插入6376 次删除
  1. 2 2
      Help/command/DEPRECATED_POLICY_VERSIONS.txt
  2. 3 3
      Help/command/if.rst
  3. 10 7
      Help/generator/Visual Studio 14 2015.rst
  4. 10 7
      Help/generator/Visual Studio 15 2017.rst
  5. 5 4
      Help/policy/CMP0051.rst
  6. 5 4
      Help/policy/CMP0052.rst
  7. 5 4
      Help/policy/CMP0053.rst
  8. 5 4
      Help/policy/CMP0054.rst
  9. 5 1
      Help/release/dev/remove-old-compatibility.rst
  10. 0 1
      Modules/CMakeIOSInstallCombined.cmake
  11. 0 6
      Modules/CMakeParseImplicitLinkInfo.cmake
  12. 0 6
      Modules/CMakeParseLibraryArchitecture.cmake
  13. 0 5
      Modules/CheckSymbolExists.cmake
  14. 0 1
      Modules/CheckTypeSize.cmake
  15. 0 1
      Modules/ExternalProject.cmake
  16. 0 1
      Modules/FindDoxygen.cmake
  17. 0 1
      Modules/FindOpenMP.cmake
  18. 0 1
      Modules/FindPkgConfig.cmake
  19. 0 5
      Modules/GNUInstallDirs.cmake
  20. 0 5
      Modules/InstallRequiredSystemLibraries.cmake
  21. 0 6
      Modules/Internal/CMakeDetermineLinkerId.cmake
  22. 0 6
      Modules/Internal/CheckFlagCommonConfig.cmake
  23. 0 5
      Modules/Internal/CheckLinkerFlag.cmake
  24. 0 1
      Modules/Internal/CheckSourceCompiles.cmake
  25. 0 1
      Modules/Internal/CheckSourceRuns.cmake
  26. 0 5
      Modules/Internal/HeaderpadWorkaround.cmake
  27. 0 1
      Modules/Linker/GNU.cmake
  28. 0 6
      Modules/Linker/LLD.cmake
  29. 0 5
      Modules/Linker/MOLD.cmake
  30. 0 5
      Modules/Platform/Linker/BSD-Linker-Initialize.cmake
  31. 0 6
      Modules/Platform/Linker/FreeBSD-ASM.cmake
  32. 0 5
      Modules/Platform/Linker/FreeBSD-C.cmake
  33. 0 5
      Modules/Platform/Linker/FreeBSD-CXX.cmake
  34. 0 5
      Modules/Platform/Linker/FreeBSD-Fortran.cmake
  35. 0 5
      Modules/Platform/Linker/GNU.cmake
  36. 0 5
      Modules/Platform/Linker/OpenBSD-ASM.cmake
  37. 0 5
      Modules/Platform/Linker/OpenBSD-C.cmake
  38. 0 5
      Modules/Platform/Linker/OpenBSD-CXX.cmake
  39. 0 5
      Modules/Platform/Linker/OpenBSD-Fortran.cmake
  40. 0 5
      Modules/Platform/Linker/SunOS-Solaris.cmake
  41. 0 5
      Modules/Platform/Linker/Windows-ASM.cmake
  42. 0 5
      Modules/Platform/Linker/Windows-C.cmake
  43. 0 5
      Modules/Platform/Linker/Windows-CXX.cmake
  44. 0 5
      Modules/Platform/Linker/Windows-Fortran.cmake
  45. 0 5
      Modules/Platform/Linker/Windows-HIP.cmake
  46. 0 5
      Modules/Platform/Linker/Windows-LLD.cmake
  47. 0 5
      Modules/Platform/Linker/Windows-MSVC.cmake
  48. 0 5
      Modules/Platform/Linker/WindowsPhone-ASM.cmake
  49. 0 5
      Modules/Platform/Linker/WindowsPhone-C.cmake
  50. 0 5
      Modules/Platform/Linker/WindowsPhone-CXX.cmake
  51. 0 5
      Modules/Platform/Linker/WindowsStore-ASM.cmake
  52. 0 5
      Modules/Platform/Linker/WindowsStore-C.cmake
  53. 0 5
      Modules/Platform/Linker/WindowsStore-CXX.cmake
  54. 0 8
      Source/CMakeLists.txt
  55. 0 2246
      Source/LexerParser/cmCommandArgumentLexer.cxx
  56. 0 689
      Source/LexerParser/cmCommandArgumentLexer.h
  57. 0 148
      Source/LexerParser/cmCommandArgumentLexer.in.l
  58. 0 1856
      Source/LexerParser/cmCommandArgumentParser.cxx
  59. 0 196
      Source/LexerParser/cmCommandArgumentParser.y
  60. 0 81
      Source/LexerParser/cmCommandArgumentParserTokens.h
  61. 1 2
      Source/QtDialog/QCMake.cxx
  62. 0 296
      Source/cmCommandArgumentParserHelper.cxx
  63. 0 91
      Source/cmCommandArgumentParserHelper.h
  64. 4 49
      Source/cmConditionEvaluator.cxx
  65. 0 2
      Source/cmConditionEvaluator.h
  66. 3 36
      Source/cmExportInstallFileGenerator.cxx
  67. 1 1
      Source/cmGeneratorTarget.cxx
  68. 2 7
      Source/cmGlobalGeneratorFactory.h
  69. 3 19
      Source/cmGlobalVisualStudio10Generator.cxx
  70. 1 2
      Source/cmGlobalVisualStudio10Generator.h
  71. 2 3
      Source/cmGlobalVisualStudio11Generator.cxx
  72. 1 2
      Source/cmGlobalVisualStudio11Generator.h
  73. 2 3
      Source/cmGlobalVisualStudio12Generator.cxx
  74. 1 2
      Source/cmGlobalVisualStudio12Generator.h
  75. 4 24
      Source/cmGlobalVisualStudio14Generator.cxx
  76. 1 2
      Source/cmGlobalVisualStudio14Generator.h
  77. 2 3
      Source/cmGlobalVisualStudio71Generator.cxx
  78. 1 2
      Source/cmGlobalVisualStudio71Generator.h
  79. 2 3
      Source/cmGlobalVisualStudio7Generator.cxx
  80. 1 2
      Source/cmGlobalVisualStudio7Generator.h
  81. 2 10
      Source/cmGlobalVisualStudio8Generator.cxx
  82. 1 2
      Source/cmGlobalVisualStudio8Generator.h
  83. 2 9
      Source/cmGlobalVisualStudioGenerator.cxx
  84. 1 3
      Source/cmGlobalVisualStudioGenerator.h
  85. 8 40
      Source/cmGlobalVisualStudioVersionedGenerator.cxx
  86. 2 3
      Source/cmGlobalVisualStudioVersionedGenerator.h
  87. 1 7
      Source/cmGlobalXCodeGenerator.cxx
  88. 9 167
      Source/cmMakefile.cxx
  89. 5 23
      Source/cmMakefile.h
  90. 3 3
      Source/cmPolicies.cxx
  91. 4 4
      Source/cmPolicies.h
  92. 4 44
      Source/cmTarget.cxx
  93. 2 2
      Source/cmTargetPropertyComputer.h
  94. 10 16
      Source/cmake.cxx
  95. 3 4
      Source/cmake.h
  96. 1 1
      Tests/CMakeTests/StringTest.cmake.in
  97. 3 12
      Tests/CMakeTests/StringTestScript.cmake
  98. 0 3
      Tests/RunCMake/CMP0051/CMP0051-NEW.cmake
  99. 0 12
      Tests/RunCMake/CMP0051/CMP0051-OLD-stderr.txt
  100. 0 10
      Tests/RunCMake/CMP0051/CMP0051-OLD.cmake

+ 2 - 2
Help/command/DEPRECATED_POLICY_VERSIONS.txt

@@ -1,9 +1,9 @@
 .. versionchanged:: 4.0
 .. versionchanged:: 4.0
 
 
-  Compatibility with versions of CMake older than 3.0 is removed.
+  Compatibility with versions of CMake older than 3.1 is removed.
   Calls to :command:`cmake_minimum_required(VERSION)` or
   Calls to :command:`cmake_minimum_required(VERSION)` or
   :command:`cmake_policy(VERSION)` that do not specify at least
   :command:`cmake_policy(VERSION)` that do not specify at least
-  3.0 as their policy version (optionally via ``...<max>``)
+  3.1 as their policy version (optionally via ``...<max>``)
   will produce an error in CMake 4.0 and above.
   will produce an error in CMake 4.0 and above.
 
 
 .. versionchanged:: 3.31
 .. versionchanged:: 3.31

+ 3 - 3
Help/command/if.rst

@@ -87,9 +87,9 @@ Basic Expressions
   A quoted string always evaluates to false unless:
   A quoted string always evaluates to false unless:
 
 
   * The string's value is one of the true constants, or
   * The string's value is one of the true constants, or
-  * Policy :policy:`CMP0054` is not set to ``NEW`` and the string's value
-    happens to be a variable name that is affected by :policy:`CMP0054`'s
-    behavior.
+  * in CMake versions prior to 4.0, policy :policy:`CMP0054` is not set
+    to ``NEW`` and the string's value happens to be a variable name that
+    is affected by :policy:`CMP0054`'s behavior.
 
 
 Logic Operators
 Logic Operators
 """""""""""""""
 """""""""""""""

+ 10 - 7
Help/generator/Visual Studio 14 2015.rst

@@ -25,15 +25,18 @@ name (architecture).  For example:
 * ``cmake -G "Visual Studio 14 2015" -A x64``
 * ``cmake -G "Visual Studio 14 2015" -A x64``
 * ``cmake -G "Visual Studio 14 2015" -A ARM``
 * ``cmake -G "Visual Studio 14 2015" -A ARM``
 
 
-For compatibility with CMake versions prior to 3.1, one may specify
-a target platform name optionally at the end of the generator name.
-This is supported only for:
+.. versionchanged:: 4.0
 
 
-``Visual Studio 14 2015 Win64``
-  Specify target platform ``x64``.
+  Previously, for compatibility with CMake versions prior to 3.1,
+  one could specify a target platform name optionally at the
+  end of the generator name.  This has been removed.
+  This was supported only for:
 
 
-``Visual Studio 14 2015 ARM``
-  Specify target platform ``ARM``.
+  ``Visual Studio 14 2015 Win64``
+    Specify target platform ``x64``.
+
+  ``Visual Studio 14 2015 ARM``
+    Specify target platform ``ARM``.
 
 
 Toolset Selection
 Toolset Selection
 ^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^

+ 10 - 7
Help/generator/Visual Studio 15 2017.rst

@@ -34,15 +34,18 @@ name (architecture).  For example:
 * ``cmake -G "Visual Studio 15 2017" -A ARM``
 * ``cmake -G "Visual Studio 15 2017" -A ARM``
 * ``cmake -G "Visual Studio 15 2017" -A ARM64``
 * ``cmake -G "Visual Studio 15 2017" -A ARM64``
 
 
-For compatibility with CMake versions prior to 3.1, one may specify
-a target platform name optionally at the end of the generator name.
-This is supported only for:
+.. versionchanged:: 4.0
 
 
-``Visual Studio 15 2017 Win64``
-  Specify target platform ``x64``.
+  Previously, for compatibility with CMake versions prior to 3.1,
+  one could specify a target platform name optionally at the
+  end of the generator name.  This has been removed.
+  This was supported only for:
 
 
-``Visual Studio 15 2017 ARM``
-  Specify target platform ``ARM``.
+  ``Visual Studio 15 2017 Win64``
+    Specify target platform ``x64``.
+
+  ``Visual Studio 15 2017 ARM``
+    Specify target platform ``ARM``.
 
 
 Toolset Selection
 Toolset Selection
 ^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^

+ 5 - 4
Help/policy/CMP0051.rst

@@ -1,6 +1,9 @@
 CMP0051
 CMP0051
 -------
 -------
 
 
+.. |REMOVED_IN_CMAKE_VERSION| replace:: 4.0
+.. include:: REMOVED_PROLOGUE.txt
+
 .. versionadded:: 3.1
 .. versionadded:: 3.1
 
 
 List :genex:`TARGET_OBJECTS` in SOURCES target property.
 List :genex:`TARGET_OBJECTS` in SOURCES target property.
@@ -21,7 +24,5 @@ behavior for this policy is to include ``TARGET_OBJECTS`` expressions
 in the output.
 in the output.
 
 
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
-.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
-.. include:: STANDARD_ADVICE.txt
-
-.. include:: DEPRECATED.txt
+.. |WARNED_OR_DID_NOT_WARN| replace:: warned
+.. include:: REMOVED_EPILOGUE.txt

+ 5 - 4
Help/policy/CMP0052.rst

@@ -1,6 +1,9 @@
 CMP0052
 CMP0052
 -------
 -------
 
 
+.. |REMOVED_IN_CMAKE_VERSION| replace:: 4.0
+.. include:: REMOVED_PROLOGUE.txt
+
 .. versionadded:: 3.1
 .. versionadded:: 3.1
 
 
 Reject source and build dirs in installed
 Reject source and build dirs in installed
@@ -22,7 +25,5 @@ directory.  The ``NEW`` behavior for this
 policy is to issue an error if such a directory is used.
 policy is to issue an error if such a directory is used.
 
 
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
-.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
-.. include:: STANDARD_ADVICE.txt
-
-.. include:: DEPRECATED.txt
+.. |WARNED_OR_DID_NOT_WARN| replace:: warned
+.. include:: REMOVED_EPILOGUE.txt

+ 5 - 4
Help/policy/CMP0053.rst

@@ -1,6 +1,9 @@
 CMP0053
 CMP0053
 -------
 -------
 
 
+.. |REMOVED_IN_CMAKE_VERSION| replace:: 4.0
+.. include:: REMOVED_PROLOGUE.txt
+
 .. versionadded:: 3.1
 .. versionadded:: 3.1
 
 
 Simplify variable reference and escape sequence evaluation.
 Simplify variable reference and escape sequence evaluation.
@@ -45,7 +48,5 @@ variable references and escape sequences.  The ``NEW`` behavior is to
 use the simpler variable expansion and escape sequence evaluation rules.
 use the simpler variable expansion and escape sequence evaluation rules.
 
 
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
-.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
-.. include:: STANDARD_ADVICE.txt
-
-.. include:: DEPRECATED.txt
+.. |WARNED_OR_DID_NOT_WARN| replace:: warned
+.. include:: REMOVED_EPILOGUE.txt

+ 5 - 4
Help/policy/CMP0054.rst

@@ -1,6 +1,9 @@
 CMP0054
 CMP0054
 -------
 -------
 
 
+.. |REMOVED_IN_CMAKE_VERSION| replace:: 4.0
+.. include:: REMOVED_PROLOGUE.txt
+
 .. versionadded:: 3.1
 .. versionadded:: 3.1
 
 
 Only interpret :command:`if` arguments as variables or keywords when unquoted.
 Only interpret :command:`if` arguments as variables or keywords when unquoted.
@@ -47,7 +50,5 @@ further dereferenced:
   if("E" STREQUAL "")
   if("E" STREQUAL "")
 
 
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.1
-.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
-.. include:: STANDARD_ADVICE.txt
-
-.. include:: DEPRECATED.txt
+.. |WARNED_OR_DID_NOT_WARN| replace:: warned
+.. include:: REMOVED_EPILOGUE.txt

+ 5 - 1
Help/release/dev/remove-old-compatibility.rst

@@ -1,10 +1,14 @@
 remove-old-compatibility
 remove-old-compatibility
 ------------------------
 ------------------------
 
 
-* Compatibility with versions of CMake older than 3.0 has been removed.
+* Compatibility with versions of CMake older than 3.1 has been removed.
   Calls to :command:`cmake_minimum_required` or :command:`cmake_policy`
   Calls to :command:`cmake_minimum_required` or :command:`cmake_policy`
   that set the policy version to an older value now issue an error.
   that set the policy version to an older value now issue an error.
   Note that calls to those commands can still support older versions of
   Note that calls to those commands can still support older versions of
   CMake by using their ``VERSION`` arguments' ``<min>...<max>`` syntax.
   CMake by using their ``VERSION`` arguments' ``<min>...<max>`` syntax.
   This requires only the ``<min>`` version of CMake, but when running a
   This requires only the ``<min>`` version of CMake, but when running a
   newer version, sets policies up to the ``<max>`` version.
   newer version, sets policies up to the ``<max>`` version.
+
+* The :generator:`Visual Studio 14 2015` and :generator:`Visual Studio 15 2017`
+  generators no longer support specifying a platform as part of the generator
+  name.  See :ref:`Visual Studio Platform Selection`.

+ 0 - 1
Modules/CMakeIOSInstallCombined.cmake

@@ -3,7 +3,6 @@
 
 
 cmake_policy(PUSH)
 cmake_policy(PUSH)
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
-cmake_policy(SET CMP0054 NEW)
 
 
 # Function to print messages of this module
 # Function to print messages of this module
 function(_ios_install_combined_message)
 function(_ios_install_combined_message)

+ 0 - 6
Modules/CMakeParseImplicitLinkInfo.cmake

@@ -1,10 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-cmake_policy(PUSH)
-cmake_policy(SET CMP0053 NEW)
-cmake_policy(SET CMP0054 NEW)
-
 # Function to parse implicit linker options.
 # Function to parse implicit linker options.
 #
 #
 # This is used internally by CMake and should not be included by user
 # This is used internally by CMake and should not be included by user
@@ -401,5 +397,3 @@ function(cmake_parse_implicit_link_info2 text log_var obj_regex)
     set(${EXTRA_PARSE_COMPUTE_IMPLICIT_OBJECTS} "${implicit_objs}" PARENT_SCOPE)
     set(${EXTRA_PARSE_COMPUTE_IMPLICIT_OBJECTS} "${implicit_objs}" PARENT_SCOPE)
   endif()
   endif()
 endfunction()
 endfunction()
-
-cmake_policy(POP)

+ 0 - 6
Modules/CMakeParseLibraryArchitecture.cmake

@@ -1,10 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-cmake_policy(PUSH)
-cmake_policy(SET CMP0053 NEW)
-cmake_policy(SET CMP0054 NEW)
-
 # Function parse implicit linker options.
 # Function parse implicit linker options.
 # This is used internally by CMake and should not be included by user
 # This is used internally by CMake and should not be included by user
 # code.
 # code.
@@ -50,5 +46,3 @@ function(cmake_parse_library_architecture lang implicit_dirs implicit_objs outpu
     set(${output_var} "${library_arch}" PARENT_SCOPE)
     set(${output_var} "${library_arch}" PARENT_SCOPE)
   endif()
   endif()
 endfunction()
 endfunction()
-
-cmake_policy(POP)

+ 0 - 5
Modules/CheckSymbolExists.cmake

@@ -59,9 +59,6 @@ For example:
 
 
 include_guard(GLOBAL)
 include_guard(GLOBAL)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
 macro(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
 macro(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
   if(CMAKE_C_COMPILER_LOADED)
   if(CMAKE_C_COMPILER_LOADED)
     __CHECK_SYMBOL_EXISTS_FILTER_FLAGS(C)
     __CHECK_SYMBOL_EXISTS_FILTER_FLAGS(C)
@@ -185,5 +182,3 @@ int main(int argc, char** argv)
     unset(_CSE_SOURCE)
     unset(_CSE_SOURCE)
   endif()
   endif()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 1
Modules/CheckTypeSize.cmake

@@ -150,7 +150,6 @@ get_filename_component(__check_type_size_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
 include_guard(GLOBAL)
 include_guard(GLOBAL)
 
 
 block(SCOPE_FOR POLICIES)
 block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
 cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
 cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
 
 
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------

+ 0 - 1
Modules/ExternalProject.cmake

@@ -1301,7 +1301,6 @@ The custom step could then be triggered from the main build like so::
 include(${CMAKE_CURRENT_LIST_DIR}/ExternalProject/shared_internal_commands.cmake)
 include(${CMAKE_CURRENT_LIST_DIR}/ExternalProject/shared_internal_commands.cmake)
 
 
 cmake_policy(PUSH)
 cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 
 
 define_property(DIRECTORY PROPERTY "EP_BASE" INHERITED)
 define_property(DIRECTORY PROPERTY "EP_BASE" INHERITED)

+ 0 - 1
Modules/FindDoxygen.cmake

@@ -401,7 +401,6 @@ Deprecated Hint Variables
 #]=======================================================================]
 #]=======================================================================]
 
 
 cmake_policy(PUSH)
 cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # quoted if arguments
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 
 
 # For backwards compatibility support
 # For backwards compatibility support

+ 0 - 1
Modules/FindOpenMP.cmake

@@ -111,7 +111,6 @@ to know what include directories are needed.
 #]=======================================================================]
 #]=======================================================================]
 
 
 cmake_policy(PUSH)
 cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
 cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
 
 

+ 0 - 1
Modules/FindPkgConfig.cmake

@@ -34,7 +34,6 @@ for how these variables are initialized.
 #]========================================]
 #]========================================]
 
 
 cmake_policy(PUSH)
 cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
 
 
 ### Common stuff ####
 ### Common stuff ####

+ 0 - 5
Modules/GNUInstallDirs.cmake

@@ -151,9 +151,6 @@ Macros
     this value through the variable ``${dir}``.
     this value through the variable ``${dir}``.
 #]=======================================================================]
 #]=======================================================================]
 
 
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
 # Convert a cache variable to PATH type
 # Convert a cache variable to PATH type
 
 
 macro(_GNUInstallDirs_cache_convert_to_path var description)
 macro(_GNUInstallDirs_cache_convert_to_path var description)
@@ -452,5 +449,3 @@ foreach(dir
     )
     )
   GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_${dir} CMAKE_INSTALL_${dir} ${dir})
   GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_${dir} CMAKE_INSTALL_${dir} ${dir})
 endforeach()
 endforeach()
-
-cmake_policy(POP)

+ 0 - 5
Modules/InstallRequiredSystemLibraries.cmake

@@ -65,9 +65,6 @@ may be set prior to including the module to adjust behavior:
   Support for installing Intel compiler runtimes.
   Support for installing Intel compiler runtimes.
 #]=======================================================================]
 #]=======================================================================]
 
 
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
 set(_IRSL_HAVE_Intel FALSE)
 set(_IRSL_HAVE_Intel FALSE)
 set(_IRSL_HAVE_MSVC FALSE)
 set(_IRSL_HAVE_MSVC FALSE)
 foreach(LANG IN ITEMS C CXX Fortran)
 foreach(LANG IN ITEMS C CXX Fortran)
@@ -806,5 +803,3 @@ if(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
       )
       )
   endif()
   endif()
 endif()
 endif()
-
-cmake_policy(POP)

+ 0 - 6
Modules/Internal/CMakeDetermineLinkerId.cmake

@@ -6,10 +6,6 @@
 # If successful, sets CMAKE_<lang>_COMPILER_LINKER_ID and
 # If successful, sets CMAKE_<lang>_COMPILER_LINKER_ID and
 # CMAKE_<lang>_COMPILER_LINKER_VERSION
 # CMAKE_<lang>_COMPILER_LINKER_VERSION
 
 
-cmake_policy(PUSH)
-cmake_policy(SET CMP0053 NEW)
-cmake_policy(SET CMP0054 NEW)
-
 function(cmake_determine_linker_id lang linker)
 function(cmake_determine_linker_id lang linker)
   if (NOT linker)
   if (NOT linker)
     # linker was not identified
     # linker was not identified
@@ -103,5 +99,3 @@ function(cmake_determine_linker_id lang linker)
     unset(CMAKE_${lang}_COMPILER_LINKER_VERSION PARENT_SCOPE)
     unset(CMAKE_${lang}_COMPILER_LINKER_VERSION PARENT_SCOPE)
   endif()
   endif()
 endfunction()
 endfunction()
-
-cmake_policy(POP)

+ 0 - 6
Modules/Internal/CheckFlagCommonConfig.cmake

@@ -8,10 +8,6 @@
 
 
 include_guard(GLOBAL)
 include_guard(GLOBAL)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
-
 macro(CMAKE_CHECK_FLAG_COMMON_INIT _FUNC _LANG _SRC _PATTERNS)
 macro(CMAKE_CHECK_FLAG_COMMON_INIT _FUNC _LANG _SRC _PATTERNS)
   if("${_LANG}" STREQUAL "C")
   if("${_LANG}" STREQUAL "C")
     set(${_SRC} "int main(void) { return 0; }")
     set(${_SRC} "int main(void) { return 0; }")
@@ -75,5 +71,3 @@ macro(CMAKE_CHECK_FLAG_COMMON_FINISH)
     set(ENV{${v}} ${_CMAKE_CHECK_FLAG_COMMON_CONFIG_locale_vars_saved_${v}})
     set(ENV{${v}} ${_CMAKE_CHECK_FLAG_COMMON_CONFIG_locale_vars_saved_${v}})
   endforeach()
   endforeach()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Internal/CheckLinkerFlag.cmake

@@ -6,9 +6,6 @@ include(Internal/CheckFlagCommonConfig)
 include(Internal/CheckSourceCompiles)
 include(Internal/CheckSourceCompiles)
 include(CMakeCheckCompilerFlagCommonPatterns)
 include(CMakeCheckCompilerFlagCommonPatterns)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
 function(CMAKE_CHECK_LINKER_FLAG _lang _flag _var)
 function(CMAKE_CHECK_LINKER_FLAG _lang _flag _var)
   # link step supports less languages than the compiler
   # link step supports less languages than the compiler
   # so do a first check about the requested language
   # so do a first check about the requested language
@@ -48,5 +45,3 @@ function(CMAKE_CHECK_LINKER_FLAG _lang _flag _var)
 
 
   cmake_check_flag_common_finish()
   cmake_check_flag_common_finish()
 endfunction()
 endfunction()
-
-endblock()

+ 0 - 1
Modules/Internal/CheckSourceCompiles.cmake

@@ -4,7 +4,6 @@
 include_guard(GLOBAL)
 include_guard(GLOBAL)
 
 
 block(SCOPE_FOR POLICIES)
 block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 
 
 function(CMAKE_CHECK_SOURCE_COMPILES _lang _source _var)
 function(CMAKE_CHECK_SOURCE_COMPILES _lang _source _var)

+ 0 - 1
Modules/Internal/CheckSourceRuns.cmake

@@ -4,7 +4,6 @@
 include_guard(GLOBAL)
 include_guard(GLOBAL)
 
 
 block(SCOPE_FOR POLICIES)
 block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 
 
 function(CMAKE_CHECK_SOURCE_RUNS _lang _source _var)
 function(CMAKE_CHECK_SOURCE_RUNS _lang _source _var)

+ 0 - 5
Modules/Internal/HeaderpadWorkaround.cmake

@@ -9,9 +9,6 @@ if(NOT APPLE)
   return()
   return()
 endif()
 endif()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
 function(__cmake_internal_workaround_headerpad_flag_conflict _LANG)
 function(__cmake_internal_workaround_headerpad_flag_conflict _LANG)
 
 
   # Until we can avoid hard-coding -Wl,-headerpad_max_install_names in the
   # Until we can avoid hard-coding -Wl,-headerpad_max_install_names in the
@@ -65,5 +62,3 @@ foreach(__lang IN LISTS __enabled_languages)
 endforeach()
 endforeach()
 unset(__lang)
 unset(__lang)
 unset(__enabled_languages)
 unset(__enabled_languages)
-
-endblock()

+ 0 - 1
Modules/Linker/GNU.cmake

@@ -6,7 +6,6 @@
 include_guard()
 include_guard()
 
 
 block(SCOPE_FOR POLICIES)
 block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
 cmake_policy(SET CMP0140 NEW)
 cmake_policy(SET CMP0140 NEW)
 
 
 function(__linker_gnu lang)
 function(__linker_gnu lang)

+ 0 - 6
Modules/Linker/LLD.cmake

@@ -3,10 +3,6 @@
 
 
 include_guard()
 include_guard()
 
 
-
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 macro(__linker_lld lang)
 macro(__linker_lld lang)
   if(CMAKE_${lang}_COMPILER_LINKER_FRONTEND_VARIANT STREQUAL "MSVC")
   if(CMAKE_${lang}_COMPILER_LINKER_FRONTEND_VARIANT STREQUAL "MSVC")
     include(Linker/MSVC)
     include(Linker/MSVC)
@@ -18,5 +14,3 @@ macro(__linker_lld lang)
     __linker_gnu(${lang})
     __linker_gnu(${lang})
   endif()
   endif()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Linker/MOLD.cmake

@@ -5,9 +5,6 @@
 # This module is shared by multiple linkers; use include blocker.
 # This module is shared by multiple linkers; use include blocker.
 include_guard()
 include_guard()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 macro(__linker_mold lang)
 macro(__linker_mold lang)
   if(CMAKE_EFFECTIVE_SYSTEM_NAME STREQUAL "Apple")
   if(CMAKE_EFFECTIVE_SYSTEM_NAME STREQUAL "Apple")
     include(Linker/AppleClang)
     include(Linker/AppleClang)
@@ -19,5 +16,3 @@ macro(__linker_mold lang)
     __linker_gnu(${lang})
     __linker_gnu(${lang})
   endif()
   endif()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/BSD-Linker-Initialize.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(NOT _CMAKE_SYSTEM_LINKER_TYPE)
 if(NOT _CMAKE_SYSTEM_LINKER_TYPE)
   block(SCOPE_FOR VARIABLES)
   block(SCOPE_FOR VARIABLES)
     execute_process(COMMAND "${CMAKE_LINKER}" --version
     execute_process(COMMAND "${CMAKE_LINKER}" --version
@@ -18,5 +15,3 @@ if(NOT _CMAKE_SYSTEM_LINKER_TYPE)
     endif()
     endif()
   endblock()
   endblock()
 endif()
 endif()
-
-endblock()

+ 0 - 6
Modules/Platform/Linker/FreeBSD-ASM.cmake

@@ -2,14 +2,8 @@
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
-
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/FreeBSD-GNU-ASM)
   include(Platform/Linker/FreeBSD-GNU-ASM)
 else()
 else()
   include(Platform/Linker/FreeBSD-LLD-ASM)
   include(Platform/Linker/FreeBSD-LLD-ASM)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/FreeBSD-C.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/FreeBSD-GNU-C)
   include(Platform/Linker/FreeBSD-GNU-C)
 else()
 else()
   include(Platform/Linker/FreeBSD-LLD-C)
   include(Platform/Linker/FreeBSD-LLD-C)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/FreeBSD-CXX.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/FreeBSD-GNU-CXX)
   include(Platform/Linker/FreeBSD-GNU-CXX)
 else()
 else()
   include(Platform/Linker/FreeBSD-LLD-CXX)
   include(Platform/Linker/FreeBSD-LLD-CXX)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/FreeBSD-Fortran.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/FreeBSD-GNU-Fortran)
   include(Platform/Linker/FreeBSD-GNU-Fortran)
 else()
 else()
   include(Platform/Linker/FreeBSD-LLD-Fortran)
   include(Platform/Linker/FreeBSD-LLD-Fortran)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/GNU.cmake

@@ -5,9 +5,6 @@
 # This module is shared by multiple languages; use include blocker.
 # This module is shared by multiple languages; use include blocker.
 include_guard()
 include_guard()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 # WHOLE_ARCHIVE Feature for LINK_LIBRARY generator expression
 # WHOLE_ARCHIVE Feature for LINK_LIBRARY generator expression
 ## check linker capabilities
 ## check linker capabilities
 function(__cmake_set_whole_archive_feature __linker)
 function(__cmake_set_whole_archive_feature __linker)
@@ -47,5 +44,3 @@ endfunction()
 
 
 ## Configure system linker
 ## Configure system linker
 __cmake_set_whole_archive_feature("${CMAKE_LINKER}")
 __cmake_set_whole_archive_feature("${CMAKE_LINKER}")
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/OpenBSD-ASM.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/OpenBSD-GNU-ASM)
   include(Platform/Linker/OpenBSD-GNU-ASM)
 else()
 else()
   include(Platform/Linker/OpenBSD-LLD-ASM)
   include(Platform/Linker/OpenBSD-LLD-ASM)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/OpenBSD-C.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/OpenBSD-GNU-C)
   include(Platform/Linker/OpenBSD-GNU-C)
 else()
 else()
   include(Platform/Linker/OpenBSD-LLD-C)
   include(Platform/Linker/OpenBSD-LLD-C)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/OpenBSD-CXX.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/OpenBSD-GNU-CXX)
   include(Platform/Linker/OpenBSD-GNU-CXX)
 else()
 else()
   include(Platform/Linker/OpenBSD-LLD-CXX)
   include(Platform/Linker/OpenBSD-LLD-CXX)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/OpenBSD-Fortran.cmake

@@ -3,13 +3,8 @@
 
 
 include(Platform/Linker/BSD-Linker-Initialize)
 include(Platform/Linker/BSD-Linker-Initialize)
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
 if(_CMAKE_SYSTEM_LINKER_TYPE STREQUAL "GNU")
   include(Platform/Linker/OpenBSD-GNU-Fortran)
   include(Platform/Linker/OpenBSD-GNU-Fortran)
 else()
 else()
   include(Platform/Linker/OpenBSD-LLD-Fortran)
   include(Platform/Linker/OpenBSD-LLD-Fortran)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/SunOS-Solaris.cmake

@@ -5,9 +5,6 @@
 # This module is shared by multiple languages; use include blocker.
 # This module is shared by multiple languages; use include blocker.
 include_guard()
 include_guard()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 macro(__sunos_linker_solaris lang)
 macro(__sunos_linker_solaris lang)
   set(CMAKE_${lang}_PLATFORM_LINKER_ID Solaris)
   set(CMAKE_${lang}_PLATFORM_LINKER_ID Solaris)
   # Features for LINK_LIBRARY generator expression
   # Features for LINK_LIBRARY generator expression
@@ -24,5 +21,3 @@ macro(__sunos_linker_solaris lang)
   set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE)
   set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE)
   set(CMAKE_${lang}_LINK_LIBRARY_WHOLE_ARCHIVE_ATTRIBUTES LIBRARY_TYPE=STATIC DEDUPLICATION=YES OVERRIDE=DEFAULT)
   set(CMAKE_${lang}_LINK_LIBRARY_WHOLE_ARCHIVE_ATTRIBUTES LIBRARY_TYPE=STATIC DEDUPLICATION=YES OVERRIDE=DEFAULT)
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-ASM.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/Windows-MSVC-ASM)
   include(Platform/Linker/Windows-MSVC-ASM)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/Windows-GNU-ASM)
   include(Platform/Linker/Windows-GNU-ASM)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-C.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/Windows-MSVC-C)
   include(Platform/Linker/Windows-MSVC-C)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/Windows-GNU-C)
   include(Platform/Linker/Windows-GNU-C)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-CXX.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/Windows-MSVC-CXX)
   include(Platform/Linker/Windows-MSVC-CXX)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/Windows-GNU-CXX)
   include(Platform/Linker/Windows-GNU-CXX)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-Fortran.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_Fortran_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_Fortran_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/Windows-MSVC-Fortran)
   include(Platform/Linker/Windows-MSVC-Fortran)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/Windows-GNU-Fortran)
   include(Platform/Linker/Windows-GNU-Fortran)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-HIP.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_HIP_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_HIP_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/Windows-MSVC-HIP)
   include(Platform/Linker/Windows-MSVC-HIP)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/Windows-GNU-HIP)
   include(Platform/Linker/Windows-GNU-HIP)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-LLD.cmake

@@ -5,9 +5,6 @@
 # This module is shared by multiple languages; use include blocker.
 # This module is shared by multiple languages; use include blocker.
 include_guard()
 include_guard()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 macro(__windows_linker_lld lang)
 macro(__windows_linker_lld lang)
   set(CMAKE_${lang}_PLATFORM_LINKER_ID LLD)
   set(CMAKE_${lang}_PLATFORM_LINKER_ID LLD)
   # Features for LINK_LIBRARY generator expression
   # Features for LINK_LIBRARY generator expression
@@ -21,5 +18,3 @@ macro(__windows_linker_lld lang)
     __windows_linker_msvc(${lang})
     __windows_linker_msvc(${lang})
   endif()
   endif()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/Windows-MSVC.cmake

@@ -5,9 +5,6 @@
 # This module is shared by multiple languages; use include blocker.
 # This module is shared by multiple languages; use include blocker.
 include_guard()
 include_guard()
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 # Features for LINK_LIBRARY generator expression
 # Features for LINK_LIBRARY generator expression
 if(MSVC_VERSION GREATER "1900")
 if(MSVC_VERSION GREATER "1900")
   ## WHOLE_ARCHIVE: Force loading all members of an archive
   ## WHOLE_ARCHIVE: Force loading all members of an archive
@@ -32,5 +29,3 @@ macro(__windows_linker_msvc lang)
     endif()
     endif()
   endif()
   endif()
 endmacro()
 endmacro()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsPhone-ASM.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsPhone-MSVC-ASM)
   include(Platform/Linker/WindowsPhone-MSVC-ASM)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsPhone-GNU-ASM)
   include(Platform/Linker/WindowsPhone-GNU-ASM)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsPhone-C.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsPhone-MSVC-C)
   include(Platform/Linker/WindowsPhone-MSVC-C)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsPhone-GNU-C)
   include(Platform/Linker/WindowsPhone-GNU-C)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsPhone-CXX.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsPhone-MSVC-CXX)
   include(Platform/Linker/WindowsPhone-MSVC-CXX)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsPhone-GNU-CXX)
   include(Platform/Linker/WindowsPhone-GNU-CXX)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsStore-ASM.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_ASM_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsStore-MSVC-ASM)
   include(Platform/Linker/WindowsStore-MSVC-ASM)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsStore-GNU-ASM)
   include(Platform/Linker/WindowsStore-GNU-ASM)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsStore-C.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsStore-MSVC-C)
   include(Platform/Linker/WindowsStore-MSVC-C)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsStore-GNU-C)
   include(Platform/Linker/WindowsStore-GNU-C)
 endif()
 endif()
-
-endblock()

+ 0 - 5
Modules/Platform/Linker/WindowsStore-CXX.cmake

@@ -1,9 +1,6 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 # file Copyright.txt or https://cmake.org/licensing for details.
 
 
-block(SCOPE_FOR POLICIES)
-cmake_policy(SET CMP0054 NEW)
-
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
 if(CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
   # MSVC is the default linker
   # MSVC is the default linker
   include(Platform/Linker/WindowsStore-MSVC-CXX)
   include(Platform/Linker/WindowsStore-MSVC-CXX)
@@ -11,5 +8,3 @@ else()
     # GNU is the default linker
     # GNU is the default linker
   include(Platform/Linker/WindowsStore-GNU-CXX)
   include(Platform/Linker/WindowsStore-GNU-CXX)
 endif()
 endif()
-
-endblock()

+ 0 - 8
Source/CMakeLists.txt

@@ -62,12 +62,6 @@ add_library(ManifestLib INTERFACE)
 add_library(
 add_library(
   CMakeLib
   CMakeLib
   # Lexers/Parsers
   # Lexers/Parsers
-  LexerParser/cmCommandArgumentLexer.cxx
-  LexerParser/cmCommandArgumentLexer.h
-  LexerParser/cmCommandArgumentLexer.in.l
-  LexerParser/cmCommandArgumentParser.cxx
-  LexerParser/cmCommandArgumentParserTokens.h
-  LexerParser/cmCommandArgumentParser.y
   LexerParser/cmDependsJavaLexer.cxx
   LexerParser/cmDependsJavaLexer.cxx
   LexerParser/cmDependsJavaLexer.h
   LexerParser/cmDependsJavaLexer.h
   LexerParser/cmDependsJavaLexer.in.l
   LexerParser/cmDependsJavaLexer.in.l
@@ -141,7 +135,6 @@ add_library(
   cmCMakePresetsGraphReadJSONPackagePresets.cxx
   cmCMakePresetsGraphReadJSONPackagePresets.cxx
   cmCMakePresetsGraphReadJSONTestPresets.cxx
   cmCMakePresetsGraphReadJSONTestPresets.cxx
   cmCMakePresetsGraphReadJSONWorkflowPresets.cxx
   cmCMakePresetsGraphReadJSONWorkflowPresets.cxx
-  cmCommandArgumentParserHelper.cxx
   cmCommandLineArgument.h
   cmCommandLineArgument.h
   cmCommonTargetGenerator.cxx
   cmCommonTargetGenerator.cxx
   cmCommonTargetGenerator.h
   cmCommonTargetGenerator.h
@@ -1018,7 +1011,6 @@ if(CMake_BUILD_PCH)
     set_source_files_properties("LexerParser/cmFortranParser.cxx" PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
     set_source_files_properties("LexerParser/cmFortranParser.cxx" PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
   else()
   else()
     set_source_files_properties(
     set_source_files_properties(
-      "LexerParser/cmCommandArgumentLexer.cxx"
       "LexerParser/cmGccDepfileLexer.cxx"
       "LexerParser/cmGccDepfileLexer.cxx"
       "LexerParser/cmExprLexer.cxx"
       "LexerParser/cmExprLexer.cxx"
       "LexerParser/cmDependsJavaLexer.cxx"
       "LexerParser/cmDependsJavaLexer.cxx"

+ 0 - 2246
Source/LexerParser/cmCommandArgumentLexer.cxx

@@ -1,2246 +0,0 @@
-#include "cmStandardLexer.h"
-
-#define FLEXINT_H 1
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-#ifdef yy_create_buffer
-#define cmCommandArgument_yy_create_buffer_ALREADY_DEFINED
-#else
-#define yy_create_buffer cmCommandArgument_yy_create_buffer
-#endif
-
-#ifdef yy_delete_buffer
-#define cmCommandArgument_yy_delete_buffer_ALREADY_DEFINED
-#else
-#define yy_delete_buffer cmCommandArgument_yy_delete_buffer
-#endif
-
-#ifdef yy_scan_buffer
-#define cmCommandArgument_yy_scan_buffer_ALREADY_DEFINED
-#else
-#define yy_scan_buffer cmCommandArgument_yy_scan_buffer
-#endif
-
-#ifdef yy_scan_string
-#define cmCommandArgument_yy_scan_string_ALREADY_DEFINED
-#else
-#define yy_scan_string cmCommandArgument_yy_scan_string
-#endif
-
-#ifdef yy_scan_bytes
-#define cmCommandArgument_yy_scan_bytes_ALREADY_DEFINED
-#else
-#define yy_scan_bytes cmCommandArgument_yy_scan_bytes
-#endif
-
-#ifdef yy_init_buffer
-#define cmCommandArgument_yy_init_buffer_ALREADY_DEFINED
-#else
-#define yy_init_buffer cmCommandArgument_yy_init_buffer
-#endif
-
-#ifdef yy_flush_buffer
-#define cmCommandArgument_yy_flush_buffer_ALREADY_DEFINED
-#else
-#define yy_flush_buffer cmCommandArgument_yy_flush_buffer
-#endif
-
-#ifdef yy_load_buffer_state
-#define cmCommandArgument_yy_load_buffer_state_ALREADY_DEFINED
-#else
-#define yy_load_buffer_state cmCommandArgument_yy_load_buffer_state
-#endif
-
-#ifdef yy_switch_to_buffer
-#define cmCommandArgument_yy_switch_to_buffer_ALREADY_DEFINED
-#else
-#define yy_switch_to_buffer cmCommandArgument_yy_switch_to_buffer
-#endif
-
-#ifdef yypush_buffer_state
-#define cmCommandArgument_yypush_buffer_state_ALREADY_DEFINED
-#else
-#define yypush_buffer_state cmCommandArgument_yypush_buffer_state
-#endif
-
-#ifdef yypop_buffer_state
-#define cmCommandArgument_yypop_buffer_state_ALREADY_DEFINED
-#else
-#define yypop_buffer_state cmCommandArgument_yypop_buffer_state
-#endif
-
-#ifdef yyensure_buffer_stack
-#define cmCommandArgument_yyensure_buffer_stack_ALREADY_DEFINED
-#else
-#define yyensure_buffer_stack cmCommandArgument_yyensure_buffer_stack
-#endif
-
-#ifdef yylex
-#define cmCommandArgument_yylex_ALREADY_DEFINED
-#else
-#define yylex cmCommandArgument_yylex
-#endif
-
-#ifdef yyrestart
-#define cmCommandArgument_yyrestart_ALREADY_DEFINED
-#else
-#define yyrestart cmCommandArgument_yyrestart
-#endif
-
-#ifdef yylex_init
-#define cmCommandArgument_yylex_init_ALREADY_DEFINED
-#else
-#define yylex_init cmCommandArgument_yylex_init
-#endif
-
-#ifdef yylex_init_extra
-#define cmCommandArgument_yylex_init_extra_ALREADY_DEFINED
-#else
-#define yylex_init_extra cmCommandArgument_yylex_init_extra
-#endif
-
-#ifdef yylex_destroy
-#define cmCommandArgument_yylex_destroy_ALREADY_DEFINED
-#else
-#define yylex_destroy cmCommandArgument_yylex_destroy
-#endif
-
-#ifdef yyget_debug
-#define cmCommandArgument_yyget_debug_ALREADY_DEFINED
-#else
-#define yyget_debug cmCommandArgument_yyget_debug
-#endif
-
-#ifdef yyset_debug
-#define cmCommandArgument_yyset_debug_ALREADY_DEFINED
-#else
-#define yyset_debug cmCommandArgument_yyset_debug
-#endif
-
-#ifdef yyget_extra
-#define cmCommandArgument_yyget_extra_ALREADY_DEFINED
-#else
-#define yyget_extra cmCommandArgument_yyget_extra
-#endif
-
-#ifdef yyset_extra
-#define cmCommandArgument_yyset_extra_ALREADY_DEFINED
-#else
-#define yyset_extra cmCommandArgument_yyset_extra
-#endif
-
-#ifdef yyget_in
-#define cmCommandArgument_yyget_in_ALREADY_DEFINED
-#else
-#define yyget_in cmCommandArgument_yyget_in
-#endif
-
-#ifdef yyset_in
-#define cmCommandArgument_yyset_in_ALREADY_DEFINED
-#else
-#define yyset_in cmCommandArgument_yyset_in
-#endif
-
-#ifdef yyget_out
-#define cmCommandArgument_yyget_out_ALREADY_DEFINED
-#else
-#define yyget_out cmCommandArgument_yyget_out
-#endif
-
-#ifdef yyset_out
-#define cmCommandArgument_yyset_out_ALREADY_DEFINED
-#else
-#define yyset_out cmCommandArgument_yyset_out
-#endif
-
-#ifdef yyget_leng
-#define cmCommandArgument_yyget_leng_ALREADY_DEFINED
-#else
-#define yyget_leng cmCommandArgument_yyget_leng
-#endif
-
-#ifdef yyget_text
-#define cmCommandArgument_yyget_text_ALREADY_DEFINED
-#else
-#define yyget_text cmCommandArgument_yyget_text
-#endif
-
-#ifdef yyget_lineno
-#define cmCommandArgument_yyget_lineno_ALREADY_DEFINED
-#else
-#define yyget_lineno cmCommandArgument_yyget_lineno
-#endif
-
-#ifdef yyset_lineno
-#define cmCommandArgument_yyset_lineno_ALREADY_DEFINED
-#else
-#define yyset_lineno cmCommandArgument_yyset_lineno
-#endif
-
-#ifdef yyget_column
-#define cmCommandArgument_yyget_column_ALREADY_DEFINED
-#else
-#define yyget_column cmCommandArgument_yyget_column
-#endif
-
-#ifdef yyset_column
-#define cmCommandArgument_yyset_column_ALREADY_DEFINED
-#else
-#define yyset_column cmCommandArgument_yyset_column
-#endif
-
-#ifdef yywrap
-#define cmCommandArgument_yywrap_ALREADY_DEFINED
-#else
-#define yywrap cmCommandArgument_yywrap
-#endif
-
-#ifdef yyalloc
-#define cmCommandArgument_yyalloc_ALREADY_DEFINED
-#else
-#define yyalloc cmCommandArgument_yyalloc
-#endif
-
-#ifdef yyrealloc
-#define cmCommandArgument_yyrealloc_ALREADY_DEFINED
-#else
-#define yyrealloc cmCommandArgument_yyrealloc
-#endif
-
-#ifdef yyfree
-#define cmCommandArgument_yyfree_ALREADY_DEFINED
-#else
-#define yyfree cmCommandArgument_yyfree
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#ifndef SIZE_MAX
-#define SIZE_MAX               (~(size_t)0)
-#endif
-
-#endif /* ! C99 */
-
-#endif /* ! FLEXINT_H */
-
-/* begin standard C++ headers. */
-
-/* TODO: this is always defined, so inline it */
-#define yyconst const
-
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
-#else
-#define yynoreturn
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an
- *   integer in range [0..255] for use as an array index.
- */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yyg->yy_start = 1 + 2 *
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yyg->yy_start - 1) / 2)
-#define YYSTATE YY_START
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin , yyscanner )
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
-#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    #define YY_LINENO_REWIND_TO(ptr)
-
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = yyg->yy_hold_char; \
-		YY_RESTORE_YY_MORE_OFFSET \
-		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-		} \
-	while ( 0 )
-#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	int yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	int yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
-                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
-                          : NULL)
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
-
-void yyrestart ( FILE *input_file , yyscan_t yyscanner );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
-void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
-void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
-void yypop_buffer_state ( yyscan_t yyscanner );
-
-static void yyensure_buffer_stack ( yyscan_t yyscanner );
-static void yy_load_buffer_state ( yyscan_t yyscanner );
-static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
-#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
-
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
-
-void *yyalloc ( yy_size_t , yyscan_t yyscanner );
-void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
-void yyfree ( void * , yyscan_t yyscanner );
-
-#define yy_new_buffer yy_create_buffer
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (yyscanner); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define cmCommandArgument_yywrap(yyscanner) (/*CONSTCOND*/1)
-#define YY_SKIP_YYWRAP
-typedef flex_uint8_t YY_CHAR;
-
-typedef int yy_state_type;
-
-#define yytext_ptr yytext_r
-
-static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
-static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
-static int yy_get_next_buffer ( yyscan_t yyscanner );
-static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-	yyg->yytext_ptr = yy_bp; \
-	yyleng = (int) (yy_cp - yy_bp); \
-	yyg->yy_hold_char = *yy_cp; \
-	*yy_cp = '\0'; \
-	yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 14
-#define YY_END_OF_BUFFER 15
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static const flex_int16_t yy_accept[30] =
-    {   0,
-        0,    0,    0,    0,    0,    0,   15,    9,   10,    7,
-        6,   14,   11,    5,   12,   13,    9,    0,    0,    4,
-        7,    0,    8,    2,    0,    3,    0,    1,    0
-    } ;
-
-static const YY_CHAR yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
-        1,    1,    4,    1,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    1,    1,    1,
-        1,    1,    1,    5,    4,    4,    4,    4,    6,    4,
-        4,    4,    4,    4,    4,    4,    4,    7,    4,    4,
-        4,    4,    4,    4,    4,    8,    4,    4,    4,    4,
-        1,    9,    1,    1,    4,    1,    4,    4,    4,    4,
-
-        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,   10,    1,   11,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static const YY_CHAR yy_meta[12] =
-    {   0,
-        1,    2,    3,    4,    3,    4,    4,    4,    3,    5,
-        3
-    } ;
-
-static const flex_int16_t yy_base[35] =
-    {   0,
-        0,    0,   31,   30,   29,   28,   36,    0,    6,   16,
-        0,   41,   41,   41,    0,   41,    0,   22,   22,   41,
-       18,   18,   41,   41,    7,   41,    4,   41,   41,   20,
-       21,   26,    9,   30
-    } ;
-
-static const flex_int16_t yy_def[35] =
-    {   0,
-       29,    1,    1,    1,    1,    1,   29,   30,   31,   32,
-       33,   29,   29,   29,   34,   29,   30,   31,   18,   29,
-       32,   33,   29,   29,   18,   29,   18,   29,    0,   29,
-       29,   29,   29,   29
-    } ;
-
-static const flex_int16_t yy_nxt[53] =
-    {   0,
-        8,    8,    9,   10,   11,   10,   10,   10,   12,   13,
-       14,   19,   22,   28,   27,   20,   17,   17,   17,   17,
-       17,   17,   26,   17,   18,   18,   21,   21,   25,   21,
-       23,   24,   23,   23,   23,   29,   16,   16,   15,   15,
-        7,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29
-    } ;
-
-static const flex_int16_t yy_chk[53] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    9,   33,   27,   25,    9,   10,   10,   21,   21,
-       30,   30,   22,   30,   31,   31,   32,   32,   19,   32,
-       34,   18,   34,   34,   34,    7,    6,    5,    4,    3,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29
-    } ;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-/*
-
-This file must be translated to C++ and modified to build everywhere.
-
-Run flex >= 2.6 like this:
-
-  flex --nounistd --never-interactive --batch -DFLEXINT_H --noline --header-file=cmCommandArgumentLexer.h -ocmCommandArgumentLexer.cxx cmCommandArgumentLexer.in.l
-
-Modify cmCommandArgumentLexer.cxx:
-  - remove trailing whitespace:              sed -i 's/\s*$//' cmCommandArgumentLexer.h cmCommandArgumentLexer.cxx
-  - remove blank lines at end of file:       sed -i '${/^$/d;}' cmCommandArgumentLexer.h cmCommandArgumentLexer.cxx
-  - #include "cmStandardLexer.h" at the top: sed -i '1i#include "cmStandardLexer.h"' cmCommandArgumentLexer.cxx
-
-*/
-
-/* IWYU pragma: no_forward_declare yyguts_t */
-
-#ifndef __clang_analyzer__ /* Suppress clang-analyzer warnings */
-
-#include "cmCommandArgumentParserHelper.h"
-
-#define YY_USER_ACTION  yyextra->UpdateInputPosition(yyleng);
-
-/* Include the set of tokens from the parser.  */
-#include "cmCommandArgumentParserTokens.h"
-
-static const char *DCURLYVariable = "${";
-static const char *RCURLYVariable = "}";
-static const char *ATVariable = "@";
-static const char *DOLLARVariable = "$";
-static const char *LCURLYVariable = "{";
-static const char *BSLASHVariable = "\\";
-
-/*--------------------------------------------------------------------------*/
-
-#define INITIAL 0
-#define ESCAPES 1
-#define NOESCAPES 2
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-/* Holds the entire state of the reentrant scanner. */
-struct yyguts_t
-    {
-
-    /* User-defined. Not touched by flex. */
-    YY_EXTRA_TYPE yyextra_r;
-
-    /* The rest are the same as the globals declared in the non-reentrant scanner. */
-    FILE *yyin_r, *yyout_r;
-    size_t yy_buffer_stack_top; /**< index of top of stack. */
-    size_t yy_buffer_stack_max; /**< capacity of stack. */
-    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
-    char yy_hold_char;
-    int yy_n_chars;
-    int yyleng_r;
-    char *yy_c_buf_p;
-    int yy_init;
-    int yy_start;
-    int yy_did_buffer_switch_on_eof;
-    int yy_start_stack_ptr;
-    int yy_start_stack_depth;
-    int *yy_start_stack;
-    yy_state_type yy_last_accepting_state;
-    char* yy_last_accepting_cpos;
-
-    int yylineno_r;
-    int yy_flex_debug_r;
-
-    char *yytext_r;
-    int yy_more_flag;
-    int yy_more_len;
-
-    }; /* end struct yyguts_t */
-
-static int yy_init_globals ( yyscan_t yyscanner );
-
-int yylex_init (yyscan_t* scanner);
-
-int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy ( yyscan_t yyscanner );
-
-int yyget_debug ( yyscan_t yyscanner );
-
-void yyset_debug ( int debug_flag , yyscan_t yyscanner );
-
-YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
-
-void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
-
-FILE *yyget_in ( yyscan_t yyscanner );
-
-void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
-
-FILE *yyget_out ( yyscan_t yyscanner );
-
-void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
-
-			int yyget_leng ( yyscan_t yyscanner );
-
-char *yyget_text ( yyscan_t yyscanner );
-
-int yyget_lineno ( yyscan_t yyscanner );
-
-void yyset_lineno ( int _line_number , yyscan_t yyscanner );
-
-int yyget_column  ( yyscan_t yyscanner );
-
-void yyset_column ( int _column_no , yyscan_t yyscanner );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap ( yyscan_t yyscanner );
-#else
-extern int yywrap ( yyscan_t yyscanner );
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput ( yyscan_t yyscanner );
-#else
-static int input ( yyscan_t yyscanner );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
-#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		int n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(yyin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (yyscan_t yyscanner);
-
-#define YY_DECL int yylex (yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK /*LINTED*/break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	yy_state_type yy_current_state;
-	char *yy_cp, *yy_bp;
-	int yy_act;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( !yyg->yy_init )
-		{
-		yyg->yy_init = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! yyg->yy_start )
-			yyg->yy_start = 1;	/* first start state */
-
-		if ( ! yyin )
-			yyin = stdin;
-
-		if ( ! yyout )
-			yyout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			yyensure_buffer_stack (yyscanner);
-			YY_CURRENT_BUFFER_LVALUE =
-				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
-		}
-
-		yy_load_buffer_state( yyscanner );
-		}
-
-	{
-
-	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = yyg->yy_c_buf_p;
-
-		/* Support of yytext. */
-		*yy_cp = yyg->yy_hold_char;
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = yyg->yy_start;
-yy_match:
-		do
-			{
-			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
-			if ( yy_accept[yy_current_state] )
-				{
-				yyg->yy_last_accepting_state = yy_current_state;
-				yyg->yy_last_accepting_cpos = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 30 )
-					yy_c = yy_meta[yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-			++yy_cp;
-			}
-		while ( yy_current_state != 29 );
-		yy_cp = yyg->yy_last_accepting_cpos;
-		yy_current_state = yyg->yy_last_accepting_state;
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-
-		YY_DO_BEFORE_ACTION;
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = yyg->yy_hold_char;
-			yy_cp = yyg->yy_last_accepting_cpos;
-			yy_current_state = yyg->yy_last_accepting_state;
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_ENVCURLY;
-}
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_NCURLY;
-}
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_ATNAME;
-}
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = DCURLYVariable;
-  return cal_DCURLY;
-}
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = RCURLYVariable;
-  return cal_RCURLY;
-}
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = ATVariable;
-  return cal_AT;
-}
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  return cal_NAME;
-}
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-{
-  if ( !yyextra->HandleEscapeSymbol(yylvalp, *(yytext+1)) )
-    {
-    return cal_ERROR;
-    }
-  return cal_SYMBOL;
-}
-	YY_BREAK
-case 9:
-/* rule 9 can match eol */
-YY_RULE_SETUP
-{
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  return cal_SYMBOL;
-}
-	YY_BREAK
-case 10:
-YY_RULE_SETUP
-{
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = DOLLARVariable;
-  return cal_DOLLAR;
-}
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-{
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = LCURLYVariable;
-  return cal_LCURLY;
-}
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-{
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = BSLASHVariable;
-  return cal_BSLASH;
-}
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-{
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = BSLASHVariable;
-  return cal_SYMBOL;
-}
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-ECHO;
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(ESCAPES):
-case YY_STATE_EOF(NOESCAPES):
-	yyterminate();
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yyg->yy_hold_char;
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state( yyscanner );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
-
-			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++yyg->yy_c_buf_p;
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = yyg->yy_last_accepting_cpos;
-				yy_current_state = yyg->yy_last_accepting_state;
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer( yyscanner ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				yyg->yy_did_buffer_switch_on_eof = 0;
-
-				if ( yywrap( yyscanner ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				yyg->yy_c_buf_p =
-					yyg->yytext_ptr + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				yyg->yy_c_buf_p =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
-
-				yy_current_state = yy_get_previous_state( yyscanner );
-
-				yy_cp = yyg->yy_c_buf_p;
-				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-	} /* end of user's declarations */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	char *source = yyg->yytext_ptr;
-	int number_to_move, i;
-	int ret_val;
-
-	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
-
-	else
-		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
-
-			int yy_c_buf_p_offset =
-				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				int new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yyrealloc( (void *) b->yy_ch_buf,
-							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = NULL;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			yyg->yy_n_chars, num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	if ( yyg->yy_n_chars == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart( yyin  , yyscanner);
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
-			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-		/* "- 2" to take care of EOB's */
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
-	}
-
-	yyg->yy_n_chars += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
-	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
-{
-	yy_state_type yy_current_state;
-	char *yy_cp;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_current_state = yyg->yy_start;
-
-	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
-		{
-		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			yyg->yy_last_accepting_state = yy_current_state;
-			yyg->yy_last_accepting_cpos = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 30 )
-				yy_c = yy_meta[yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
-{
-	int yy_is_jam;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
-	char *yy_cp = yyg->yy_c_buf_p;
-
-	YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		yyg->yy_last_accepting_state = yy_current_state;
-		yyg->yy_last_accepting_cpos = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 30 )
-			yy_c = yy_meta[yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-	yy_is_jam = (yy_current_state == 29);
-
-	(void)yyg;
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_UNPUT
-
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (yyscan_t yyscanner)
-#else
-    static int input  (yyscan_t yyscanner)
-#endif
-
-{
-	int c;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	*yyg->yy_c_buf_p = yyg->yy_hold_char;
-
-	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
-			/* This was really a NUL. */
-			*yyg->yy_c_buf_p = '\0';
-
-		else
-			{ /* need more input */
-			int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
-			++yyg->yy_c_buf_p;
-
-			switch ( yy_get_next_buffer( yyscanner ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					yyrestart( yyin , yyscanner);
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( yywrap( yyscanner ) )
-						return 0;
-
-					if ( ! yyg->yy_did_buffer_switch_on_eof )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput(yyscanner);
-#else
-					return input(yyscanner);
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
-	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
-	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * @param yyscanner The scanner object.
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack (yyscanner);
-		YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
-	}
-
-	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
-	yy_load_buffer_state( yyscanner );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * @param yyscanner The scanner object.
- */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		yypop_buffer_state();
-	 *		yypush_buffer_state(new_buffer);
-     */
-	yyensure_buffer_stack (yyscanner);
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	yy_load_buffer_state( yyscanner );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-static void yy_load_buffer_state  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	yyg->yy_hold_char = *yyg->yy_c_buf_p;
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * @param yyscanner The scanner object.
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-
-	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	yy_init_buffer( b, file , yyscanner);
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- * @param yyscanner The scanner object.
- */
-    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		yyfree( (void *) b->yy_ch_buf , yyscanner );
-
-	yyfree( (void *) b , yyscanner );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
-
-{
-	int oerrno = errno;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	yy_flush_buffer( b , yyscanner);
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * @param yyscanner The scanner object.
- */
-    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		yy_load_buffer_state( yyscanner );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  @param yyscanner The scanner object.
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (new_buffer == NULL)
-		return;
-
-	yyensure_buffer_stack(yyscanner);
-
-	/* This block is copied from yy_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*yyg->yy_c_buf_p = yyg->yy_hold_char;
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		yyg->yy_buffer_stack_top++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from yy_switch_to_buffer. */
-	yy_load_buffer_state( yyscanner );
-	yyg->yy_did_buffer_switch_on_eof = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  @param yyscanner The scanner object.
- */
-void yypop_buffer_state (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	if (!YY_CURRENT_BUFFER)
-		return;
-
-	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if (yyg->yy_buffer_stack_top > 0)
-		--yyg->yy_buffer_stack_top;
-
-	if (YY_CURRENT_BUFFER) {
-		yy_load_buffer_state( yyscanner );
-		yyg->yy_did_buffer_switch_on_eof = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (yyscan_t yyscanner)
-{
-	yy_size_t num_to_alloc;
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-	if (!yyg->yy_buffer_stack) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
-		yyg->yy_buffer_stack_max = num_to_alloc;
-		yyg->yy_buffer_stack_top = 0;
-		return;
-	}
-
-	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		yy_size_t grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
-		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
-								(yyg->yy_buffer_stack,
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								, yyscanner);
-		if ( ! yyg->yy_buffer_stack )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
-		yyg->yy_buffer_stack_max = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return NULL;
-
-	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
-	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = NULL;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	yy_switch_to_buffer( b , yyscanner );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
-{
-
-	return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- * @param yyscanner The scanner object.
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n;
-	int i;
-
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = (yy_size_t) (_yybytes_len + 2);
-	buf = (char *) yyalloc( n , yyscanner );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = yy_scan_buffer( buf, n , yyscanner);
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
-{
-	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	(void)yyg;
-	fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		yytext[yyleng] = yyg->yy_hold_char; \
-		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
-		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
-		*yyg->yy_c_buf_p = '\0'; \
-		yyleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the user-defined data for this scanner.
- * @param yyscanner The scanner object.
- */
-YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyextra;
-}
-
-/** Get the current line number.
- * @param yyscanner The scanner object.
- */
-int yyget_lineno  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-
-    return yylineno;
-}
-
-/** Get the current column number.
- * @param yyscanner The scanner object.
- */
-int yyget_column  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        if (! YY_CURRENT_BUFFER)
-            return 0;
-
-    return yycolumn;
-}
-
-/** Get the input stream.
- * @param yyscanner The scanner object.
- */
-FILE *yyget_in  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyin;
-}
-
-/** Get the output stream.
- * @param yyscanner The scanner object.
- */
-FILE *yyget_out  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyout;
-}
-
-/** Get the length of the current token.
- * @param yyscanner The scanner object.
- */
-int yyget_leng  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yyleng;
-}
-
-/** Get the current token.
- * @param yyscanner The scanner object.
- */
-
-char *yyget_text  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yytext;
-}
-
-/** Set the user-defined data. This data is never touched by the scanner.
- * @param user_defined The data to be associated with this scanner.
- * @param yyscanner The scanner object.
- */
-void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyextra = user_defined ;
-}
-
-/** Set the current line number.
- * @param _line_number line number
- * @param yyscanner The scanner object.
- */
-void yyset_lineno (int  _line_number , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* lineno is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
-
-    yylineno = _line_number;
-}
-
-/** Set the current column.
- * @param _column_no column number
- * @param yyscanner The scanner object.
- */
-void yyset_column (int  _column_no , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-        /* column is only valid if an input buffer exists. */
-        if (! YY_CURRENT_BUFFER )
-           YY_FATAL_ERROR( "yyset_column called with no buffer" );
-
-    yycolumn = _column_no;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param _in_str A readable stream.
- * @param yyscanner The scanner object.
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyin = _in_str ;
-}
-
-void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yyout = _out_str ;
-}
-
-int yyget_debug  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    return yy_flex_debug;
-}
-
-void yyset_debug (int  _bdebug , yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    yy_flex_debug = _bdebug ;
-}
-
-/* Accessor methods for yylval and yylloc */
-
-/* User-visible API */
-
-/* yylex_init is special because it creates the scanner itself, so it is
- * the ONLY reentrant function that doesn't take the scanner as the last argument.
- * That's why we explicitly handle the declaration, instead of using our macros.
- */
-int yylex_init(yyscan_t* ptr_yy_globals)
-{
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-/* yylex_init_extra has the same functionality as yylex_init, but follows the
- * convention of taking the scanner as the last argument. Note however, that
- * this is a *pointer* to a scanner, as it will be allocated by this call (and
- * is the reason, too, why this function also must handle its own declaration).
- * The user defined value in the first argument will be available to yyalloc in
- * the yyextra field.
- */
-int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
-{
-    struct yyguts_t dummy_yyguts;
-
-    yyset_extra (yy_user_defined, &dummy_yyguts);
-
-    if (ptr_yy_globals == NULL){
-        errno = EINVAL;
-        return 1;
-    }
-
-    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-
-    if (*ptr_yy_globals == NULL){
-        errno = ENOMEM;
-        return 1;
-    }
-
-    /* By setting to 0xAA, we expose bugs in
-    yy_init_globals. Leave at 0x00 for releases. */
-    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
-    yyset_extra (yy_user_defined, *ptr_yy_globals);
-
-    return yy_init_globals ( *ptr_yy_globals );
-}
-
-static int yy_init_globals (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-    /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
-     */
-
-    yyg->yy_buffer_stack = NULL;
-    yyg->yy_buffer_stack_top = 0;
-    yyg->yy_buffer_stack_max = 0;
-    yyg->yy_c_buf_p = NULL;
-    yyg->yy_init = 0;
-    yyg->yy_start = 0;
-
-    yyg->yy_start_stack_ptr = 0;
-    yyg->yy_start_stack_depth = 0;
-    yyg->yy_start_stack =  NULL;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
-#else
-    yyin = NULL;
-    yyout = NULL;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
-     */
-    return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (yyscan_t yyscanner)
-{
-    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		yypop_buffer_state(yyscanner);
-	}
-
-	/* Destroy the stack itself. */
-	yyfree(yyg->yy_buffer_stack , yyscanner);
-	yyg->yy_buffer_stack = NULL;
-
-    /* Destroy the start condition stack. */
-        yyfree( yyg->yy_start_stack , yyscanner );
-        yyg->yy_start_stack = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * yylex() is called, initialization will occur. */
-    yy_init_globals( yyscanner);
-
-    /* Destroy the main struct (reentrant only). */
-    yyfree ( yyscanner , yyscanner );
-    yyscanner = NULL;
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
-{
-	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	(void)yyg;
-
-	int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
-{
-	int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
-{
-	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	(void)yyg;
-	return malloc(size);
-}
-
-void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
-{
-	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	(void)yyg;
-
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return realloc(ptr, size);
-}
-
-void yyfree (void * ptr , yyscan_t yyscanner)
-{
-	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-	(void)yyg;
-	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-/*--------------------------------------------------------------------------*/
-void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes)
-{
-  /* Hack into the internal flex-generated scanner to set the state.  */
-  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-  if(noEscapes) {
-    BEGIN(NOESCAPES);
-  } else {
-    BEGIN(ESCAPES);
-  }
-}
-
-#endif /* __clang_analyzer__ */

+ 0 - 689
Source/LexerParser/cmCommandArgumentLexer.h

@@ -1,689 +0,0 @@
-#ifndef cmCommandArgument_yyHEADER_H
-#define cmCommandArgument_yyHEADER_H 1
-#define cmCommandArgument_yyIN_HEADER 1
-
-#define FLEXINT_H 1
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-#ifdef yy_create_buffer
-#define cmCommandArgument_yy_create_buffer_ALREADY_DEFINED
-#else
-#define yy_create_buffer cmCommandArgument_yy_create_buffer
-#endif
-
-#ifdef yy_delete_buffer
-#define cmCommandArgument_yy_delete_buffer_ALREADY_DEFINED
-#else
-#define yy_delete_buffer cmCommandArgument_yy_delete_buffer
-#endif
-
-#ifdef yy_scan_buffer
-#define cmCommandArgument_yy_scan_buffer_ALREADY_DEFINED
-#else
-#define yy_scan_buffer cmCommandArgument_yy_scan_buffer
-#endif
-
-#ifdef yy_scan_string
-#define cmCommandArgument_yy_scan_string_ALREADY_DEFINED
-#else
-#define yy_scan_string cmCommandArgument_yy_scan_string
-#endif
-
-#ifdef yy_scan_bytes
-#define cmCommandArgument_yy_scan_bytes_ALREADY_DEFINED
-#else
-#define yy_scan_bytes cmCommandArgument_yy_scan_bytes
-#endif
-
-#ifdef yy_init_buffer
-#define cmCommandArgument_yy_init_buffer_ALREADY_DEFINED
-#else
-#define yy_init_buffer cmCommandArgument_yy_init_buffer
-#endif
-
-#ifdef yy_flush_buffer
-#define cmCommandArgument_yy_flush_buffer_ALREADY_DEFINED
-#else
-#define yy_flush_buffer cmCommandArgument_yy_flush_buffer
-#endif
-
-#ifdef yy_load_buffer_state
-#define cmCommandArgument_yy_load_buffer_state_ALREADY_DEFINED
-#else
-#define yy_load_buffer_state cmCommandArgument_yy_load_buffer_state
-#endif
-
-#ifdef yy_switch_to_buffer
-#define cmCommandArgument_yy_switch_to_buffer_ALREADY_DEFINED
-#else
-#define yy_switch_to_buffer cmCommandArgument_yy_switch_to_buffer
-#endif
-
-#ifdef yypush_buffer_state
-#define cmCommandArgument_yypush_buffer_state_ALREADY_DEFINED
-#else
-#define yypush_buffer_state cmCommandArgument_yypush_buffer_state
-#endif
-
-#ifdef yypop_buffer_state
-#define cmCommandArgument_yypop_buffer_state_ALREADY_DEFINED
-#else
-#define yypop_buffer_state cmCommandArgument_yypop_buffer_state
-#endif
-
-#ifdef yyensure_buffer_stack
-#define cmCommandArgument_yyensure_buffer_stack_ALREADY_DEFINED
-#else
-#define yyensure_buffer_stack cmCommandArgument_yyensure_buffer_stack
-#endif
-
-#ifdef yylex
-#define cmCommandArgument_yylex_ALREADY_DEFINED
-#else
-#define yylex cmCommandArgument_yylex
-#endif
-
-#ifdef yyrestart
-#define cmCommandArgument_yyrestart_ALREADY_DEFINED
-#else
-#define yyrestart cmCommandArgument_yyrestart
-#endif
-
-#ifdef yylex_init
-#define cmCommandArgument_yylex_init_ALREADY_DEFINED
-#else
-#define yylex_init cmCommandArgument_yylex_init
-#endif
-
-#ifdef yylex_init_extra
-#define cmCommandArgument_yylex_init_extra_ALREADY_DEFINED
-#else
-#define yylex_init_extra cmCommandArgument_yylex_init_extra
-#endif
-
-#ifdef yylex_destroy
-#define cmCommandArgument_yylex_destroy_ALREADY_DEFINED
-#else
-#define yylex_destroy cmCommandArgument_yylex_destroy
-#endif
-
-#ifdef yyget_debug
-#define cmCommandArgument_yyget_debug_ALREADY_DEFINED
-#else
-#define yyget_debug cmCommandArgument_yyget_debug
-#endif
-
-#ifdef yyset_debug
-#define cmCommandArgument_yyset_debug_ALREADY_DEFINED
-#else
-#define yyset_debug cmCommandArgument_yyset_debug
-#endif
-
-#ifdef yyget_extra
-#define cmCommandArgument_yyget_extra_ALREADY_DEFINED
-#else
-#define yyget_extra cmCommandArgument_yyget_extra
-#endif
-
-#ifdef yyset_extra
-#define cmCommandArgument_yyset_extra_ALREADY_DEFINED
-#else
-#define yyset_extra cmCommandArgument_yyset_extra
-#endif
-
-#ifdef yyget_in
-#define cmCommandArgument_yyget_in_ALREADY_DEFINED
-#else
-#define yyget_in cmCommandArgument_yyget_in
-#endif
-
-#ifdef yyset_in
-#define cmCommandArgument_yyset_in_ALREADY_DEFINED
-#else
-#define yyset_in cmCommandArgument_yyset_in
-#endif
-
-#ifdef yyget_out
-#define cmCommandArgument_yyget_out_ALREADY_DEFINED
-#else
-#define yyget_out cmCommandArgument_yyget_out
-#endif
-
-#ifdef yyset_out
-#define cmCommandArgument_yyset_out_ALREADY_DEFINED
-#else
-#define yyset_out cmCommandArgument_yyset_out
-#endif
-
-#ifdef yyget_leng
-#define cmCommandArgument_yyget_leng_ALREADY_DEFINED
-#else
-#define yyget_leng cmCommandArgument_yyget_leng
-#endif
-
-#ifdef yyget_text
-#define cmCommandArgument_yyget_text_ALREADY_DEFINED
-#else
-#define yyget_text cmCommandArgument_yyget_text
-#endif
-
-#ifdef yyget_lineno
-#define cmCommandArgument_yyget_lineno_ALREADY_DEFINED
-#else
-#define yyget_lineno cmCommandArgument_yyget_lineno
-#endif
-
-#ifdef yyset_lineno
-#define cmCommandArgument_yyset_lineno_ALREADY_DEFINED
-#else
-#define yyset_lineno cmCommandArgument_yyset_lineno
-#endif
-
-#ifdef yyget_column
-#define cmCommandArgument_yyget_column_ALREADY_DEFINED
-#else
-#define yyget_column cmCommandArgument_yyget_column
-#endif
-
-#ifdef yyset_column
-#define cmCommandArgument_yyset_column_ALREADY_DEFINED
-#else
-#define yyset_column cmCommandArgument_yyset_column
-#endif
-
-#ifdef yywrap
-#define cmCommandArgument_yywrap_ALREADY_DEFINED
-#else
-#define yywrap cmCommandArgument_yywrap
-#endif
-
-#ifdef yyalloc
-#define cmCommandArgument_yyalloc_ALREADY_DEFINED
-#else
-#define yyalloc cmCommandArgument_yyalloc
-#endif
-
-#ifdef yyrealloc
-#define cmCommandArgument_yyrealloc_ALREADY_DEFINED
-#else
-#define yyrealloc cmCommandArgument_yyrealloc
-#endif
-
-#ifdef yyfree
-#define cmCommandArgument_yyfree_ALREADY_DEFINED
-#else
-#define yyfree cmCommandArgument_yyfree
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#ifndef SIZE_MAX
-#define SIZE_MAX               (~(size_t)0)
-#endif
-
-#endif /* ! C99 */
-
-#endif /* ! FLEXINT_H */
-
-/* begin standard C++ headers. */
-
-/* TODO: this is always defined, so inline it */
-#define yyconst const
-
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
-#else
-#define yynoreturn
-#endif
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
-#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
-#endif
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	int yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	int yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-void yyrestart ( FILE *input_file , yyscan_t yyscanner );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
-void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
-void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
-void yypop_buffer_state ( yyscan_t yyscanner );
-
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
-
-void *yyalloc ( yy_size_t , yyscan_t yyscanner );
-void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
-void yyfree ( void * , yyscan_t yyscanner );
-
-/* Begin user sect3 */
-
-#define cmCommandArgument_yywrap(yyscanner) (/*CONSTCOND*/1)
-#define YY_SKIP_YYWRAP
-
-#define yytext_ptr yytext_r
-
-#ifdef YY_HEADER_EXPORT_START_CONDITIONS
-#define INITIAL 0
-#define ESCAPES 1
-#define NOESCAPES 2
-
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-int yylex_init (yyscan_t* scanner);
-
-int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy ( yyscan_t yyscanner );
-
-int yyget_debug ( yyscan_t yyscanner );
-
-void yyset_debug ( int debug_flag , yyscan_t yyscanner );
-
-YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
-
-void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
-
-FILE *yyget_in ( yyscan_t yyscanner );
-
-void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
-
-FILE *yyget_out ( yyscan_t yyscanner );
-
-void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
-
-			int yyget_leng ( yyscan_t yyscanner );
-
-char *yyget_text ( yyscan_t yyscanner );
-
-int yyget_lineno ( yyscan_t yyscanner );
-
-void yyset_lineno ( int _line_number , yyscan_t yyscanner );
-
-int yyget_column  ( yyscan_t yyscanner );
-
-void yyset_column ( int _column_no , yyscan_t yyscanner );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap ( yyscan_t yyscanner );
-#else
-extern int yywrap ( yyscan_t yyscanner );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
-#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (yyscan_t yyscanner);
-
-#define YY_DECL int yylex (yyscan_t yyscanner)
-#endif /* !YY_DECL */
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-
-#ifndef cmCommandArgument_yy_create_buffer_ALREADY_DEFINED
-#undef yy_create_buffer
-#endif
-#ifndef cmCommandArgument_yy_delete_buffer_ALREADY_DEFINED
-#undef yy_delete_buffer
-#endif
-#ifndef cmCommandArgument_yy_scan_buffer_ALREADY_DEFINED
-#undef yy_scan_buffer
-#endif
-#ifndef cmCommandArgument_yy_scan_string_ALREADY_DEFINED
-#undef yy_scan_string
-#endif
-#ifndef cmCommandArgument_yy_scan_bytes_ALREADY_DEFINED
-#undef yy_scan_bytes
-#endif
-#ifndef cmCommandArgument_yy_init_buffer_ALREADY_DEFINED
-#undef yy_init_buffer
-#endif
-#ifndef cmCommandArgument_yy_flush_buffer_ALREADY_DEFINED
-#undef yy_flush_buffer
-#endif
-#ifndef cmCommandArgument_yy_load_buffer_state_ALREADY_DEFINED
-#undef yy_load_buffer_state
-#endif
-#ifndef cmCommandArgument_yy_switch_to_buffer_ALREADY_DEFINED
-#undef yy_switch_to_buffer
-#endif
-#ifndef cmCommandArgument_yypush_buffer_state_ALREADY_DEFINED
-#undef yypush_buffer_state
-#endif
-#ifndef cmCommandArgument_yypop_buffer_state_ALREADY_DEFINED
-#undef yypop_buffer_state
-#endif
-#ifndef cmCommandArgument_yyensure_buffer_stack_ALREADY_DEFINED
-#undef yyensure_buffer_stack
-#endif
-#ifndef cmCommandArgument_yylex_ALREADY_DEFINED
-#undef yylex
-#endif
-#ifndef cmCommandArgument_yyrestart_ALREADY_DEFINED
-#undef yyrestart
-#endif
-#ifndef cmCommandArgument_yylex_init_ALREADY_DEFINED
-#undef yylex_init
-#endif
-#ifndef cmCommandArgument_yylex_init_extra_ALREADY_DEFINED
-#undef yylex_init_extra
-#endif
-#ifndef cmCommandArgument_yylex_destroy_ALREADY_DEFINED
-#undef yylex_destroy
-#endif
-#ifndef cmCommandArgument_yyget_debug_ALREADY_DEFINED
-#undef yyget_debug
-#endif
-#ifndef cmCommandArgument_yyset_debug_ALREADY_DEFINED
-#undef yyset_debug
-#endif
-#ifndef cmCommandArgument_yyget_extra_ALREADY_DEFINED
-#undef yyget_extra
-#endif
-#ifndef cmCommandArgument_yyset_extra_ALREADY_DEFINED
-#undef yyset_extra
-#endif
-#ifndef cmCommandArgument_yyget_in_ALREADY_DEFINED
-#undef yyget_in
-#endif
-#ifndef cmCommandArgument_yyset_in_ALREADY_DEFINED
-#undef yyset_in
-#endif
-#ifndef cmCommandArgument_yyget_out_ALREADY_DEFINED
-#undef yyget_out
-#endif
-#ifndef cmCommandArgument_yyset_out_ALREADY_DEFINED
-#undef yyset_out
-#endif
-#ifndef cmCommandArgument_yyget_leng_ALREADY_DEFINED
-#undef yyget_leng
-#endif
-#ifndef cmCommandArgument_yyget_text_ALREADY_DEFINED
-#undef yyget_text
-#endif
-#ifndef cmCommandArgument_yyget_lineno_ALREADY_DEFINED
-#undef yyget_lineno
-#endif
-#ifndef cmCommandArgument_yyset_lineno_ALREADY_DEFINED
-#undef yyset_lineno
-#endif
-#ifndef cmCommandArgument_yyget_column_ALREADY_DEFINED
-#undef yyget_column
-#endif
-#ifndef cmCommandArgument_yyset_column_ALREADY_DEFINED
-#undef yyset_column
-#endif
-#ifndef cmCommandArgument_yywrap_ALREADY_DEFINED
-#undef yywrap
-#endif
-#ifndef cmCommandArgument_yyget_lval_ALREADY_DEFINED
-#undef yyget_lval
-#endif
-#ifndef cmCommandArgument_yyset_lval_ALREADY_DEFINED
-#undef yyset_lval
-#endif
-#ifndef cmCommandArgument_yyget_lloc_ALREADY_DEFINED
-#undef yyget_lloc
-#endif
-#ifndef cmCommandArgument_yyset_lloc_ALREADY_DEFINED
-#undef yyset_lloc
-#endif
-#ifndef cmCommandArgument_yyalloc_ALREADY_DEFINED
-#undef yyalloc
-#endif
-#ifndef cmCommandArgument_yyrealloc_ALREADY_DEFINED
-#undef yyrealloc
-#endif
-#ifndef cmCommandArgument_yyfree_ALREADY_DEFINED
-#undef yyfree
-#endif
-#ifndef cmCommandArgument_yytext_ALREADY_DEFINED
-#undef yytext
-#endif
-#ifndef cmCommandArgument_yyleng_ALREADY_DEFINED
-#undef yyleng
-#endif
-#ifndef cmCommandArgument_yyin_ALREADY_DEFINED
-#undef yyin
-#endif
-#ifndef cmCommandArgument_yyout_ALREADY_DEFINED
-#undef yyout
-#endif
-#ifndef cmCommandArgument_yy_flex_debug_ALREADY_DEFINED
-#undef yy_flex_debug
-#endif
-#ifndef cmCommandArgument_yylineno_ALREADY_DEFINED
-#undef yylineno
-#endif
-#ifndef cmCommandArgument_yytables_fload_ALREADY_DEFINED
-#undef yytables_fload
-#endif
-#ifndef cmCommandArgument_yytables_destroy_ALREADY_DEFINED
-#undef yytables_destroy
-#endif
-#ifndef cmCommandArgument_yyTABLES_NAME_ALREADY_DEFINED
-#undef yyTABLES_NAME
-#endif
-
-#undef cmCommandArgument_yyIN_HEADER
-#endif /* cmCommandArgument_yyHEADER_H */

+ 0 - 148
Source/LexerParser/cmCommandArgumentLexer.in.l

@@ -1,148 +0,0 @@
-%{
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-/*
-
-This file must be translated to C++ and modified to build everywhere.
-
-Run flex >= 2.6 like this:
-
-  flex --nounistd --never-interactive --batch -DFLEXINT_H --noline --header-file=cmCommandArgumentLexer.h -ocmCommandArgumentLexer.cxx cmCommandArgumentLexer.in.l
-
-Modify cmCommandArgumentLexer.cxx:
-  - remove trailing whitespace:              sed -i 's/\s*$//' cmCommandArgumentLexer.h cmCommandArgumentLexer.cxx
-  - remove blank lines at end of file:       sed -i '${/^$/d;}' cmCommandArgumentLexer.h cmCommandArgumentLexer.cxx
-  - #include "cmStandardLexer.h" at the top: sed -i '1i#include "cmStandardLexer.h"' cmCommandArgumentLexer.cxx
-
-*/
-
-/* IWYU pragma: no_forward_declare yyguts_t */
-
-#ifndef __clang_analyzer__ /* Suppress clang-analyzer warnings */
-
-#include "cmCommandArgumentParserHelper.h"
-
-#define YY_USER_ACTION  yyextra->UpdateInputPosition(yyleng);
-
-/* Include the set of tokens from the parser.  */
-#include "cmCommandArgumentParserTokens.h"
-
-static const char *DCURLYVariable = "${";
-static const char *RCURLYVariable = "}";
-static const char *ATVariable = "@";
-static const char *DOLLARVariable = "$";
-static const char *LCURLYVariable = "{";
-static const char *BSLASHVariable = "\\";
-
-/*--------------------------------------------------------------------------*/
-%}
-
-%option prefix="cmCommandArgument_yy"
-
-%option reentrant
-%option noyywrap
-%option nounput
-%pointer
-%s ESCAPES
-%s NOESCAPES
-
-%%
-
-\$ENV\{ {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_ENVCURLY;
-}
-
-\$[A-Za-z0-9/_.+-]+\{ {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_NCURLY;
-}
-
-@[A-Za-z0-9/_.+-]+@ {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext+1, strlen(yytext)-2);
-  return cal_ATNAME;
-}
-
-"${" {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = DCURLYVariable;
-  return cal_DCURLY;
-}
-
-"}" {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = RCURLYVariable;
-  return cal_RCURLY;
-}
-
-"@" {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = ATVariable;
-  return cal_AT;
-}
-
-[A-Za-z0-9/_.+-]+ {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  return cal_NAME;
-}
-
-<ESCAPES>\\. {
-  if ( !yyextra->HandleEscapeSymbol(yylvalp, *(yytext+1)) )
-    {
-    return cal_ERROR;
-    }
-  return cal_SYMBOL;
-}
-
-[^\${}\\@]+ {
-  //std::cerr << __LINE__ << " here: [" << yytext << "]" << std::endl;
-  yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  return cal_SYMBOL;
-}
-
-"$" {
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = DOLLARVariable;
-  return cal_DOLLAR;
-}
-
-"{" {
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = LCURLYVariable;
-  return cal_LCURLY;
-}
-
-<ESCAPES>"\\" {
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = BSLASHVariable;
-  return cal_BSLASH;
-}
-
-<NOESCAPES>"\\" {
-  //yyextra->AllocateParserType(yylvalp, yytext, strlen(yytext));
-  yylvalp->str = BSLASHVariable;
-  return cal_SYMBOL;
-}
-
-%%
-
-/*--------------------------------------------------------------------------*/
-void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes)
-{
-  /* Hack into the internal flex-generated scanner to set the state.  */
-  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-  if(noEscapes) {
-    BEGIN(NOESCAPES);
-  } else {
-    BEGIN(ESCAPES);
-  }
-}
-
-#endif /* __clang_analyzer__ */

+ 0 - 1856
Source/LexerParser/cmCommandArgumentParser.cxx

@@ -1,1856 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.8.2.  */
-
-/* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
-   Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
-   especially those whose name start with YY_ or yy_.  They are
-   private implementation details that can be changed or removed.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output, and Bison version.  */
-#define YYBISON 30802
-
-/* Bison version string.  */
-#define YYBISON_VERSION "3.8.2"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 1
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-/* Substitute the variable and function names.  */
-#define yyparse         cmCommandArgument_yyparse
-#define yylex           cmCommandArgument_yylex
-#define yyerror         cmCommandArgument_yyerror
-#define yydebug         cmCommandArgument_yydebug
-#define yynerrs         cmCommandArgument_yynerrs
-
-/* First part of user prologue.  */
-#line 1 "cmCommandArgumentParser.y"
-
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-/*
-
-This file must be translated to C and modified to build everywhere.
-
-Run bison like this:
-
-  bison --name-prefix=cmCommandArgument_yy --defines=cmCommandArgumentParserTokens.h -ocmCommandArgumentParser.cxx cmCommandArgumentParser.y
-
-*/
-
-#include "cmConfigure.h" // IWYU pragma: keep
-
-#include <string.h>
-
-#define yyGetParser (cmCommandArgument_yyget_extra(yyscanner))
-
-/* Make sure malloc and free are available on QNX.  */
-#ifdef __QNX__
-# include <malloc.h>
-#endif
-
-/* Make sure the parser uses standard memory allocation.  The default
-   generated parser malloc/free declarations do not work on all
-   platforms.  */
-#include <stdlib.h>
-#define YYMALLOC malloc
-#define YYFREE free
-
-/*-------------------------------------------------------------------------*/
-#include "cmCommandArgumentParserHelper.h" /* Interface to parser object.  */
-#include "cmCommandArgumentLexer.h"  /* Interface to lexer object.  */
-
-/* Forward declare the lexer entry point.  */
-YY_DECL;
-
-/* Helper function to forward error callback from parser.  */
-static void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message);
-
-/* Configure the parser to support large input.  */
-#define YYMAXDEPTH 100000
-#define YYINITDEPTH 10000
-
-/* Disable some warnings in the generated code.  */
-#ifdef _MSC_VER
-# pragma warning (disable: 4102) /* Unused goto label.  */
-# pragma warning (disable: 4065) /* Switch statement contains default but no
-                                    case. */
-# pragma warning (disable: 4244) /* loss of precision */
-# pragma warning (disable: 4702) /* unreachable code */
-#endif
-#if defined(__GNUC__) && __GNUC__ >= 8
-# pragma GCC diagnostic ignored "-Wconversion"
-# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
-#endif
-#if defined(__clang__) && defined(__has_warning)
-# if __has_warning("-Wunused-but-set-variable")
-#  pragma clang diagnostic ignored "-Wunused-but-set-variable"
-# endif
-#endif
-
-#line 140 "cmCommandArgumentParser.cxx"
-
-# ifndef YY_CAST
-#  ifdef __cplusplus
-#   define YY_CAST(Type, Val) static_cast<Type> (Val)
-#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
-#  else
-#   define YY_CAST(Type, Val) ((Type) (Val))
-#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
-#  endif
-# endif
-# ifndef YY_NULLPTR
-#  if defined __cplusplus
-#   if 201103L <= __cplusplus
-#    define YY_NULLPTR nullptr
-#   else
-#    define YY_NULLPTR 0
-#   endif
-#  else
-#   define YY_NULLPTR ((void*)0)
-#  endif
-# endif
-
-#include "cmCommandArgumentParserTokens.h"
-/* Symbol kind.  */
-enum yysymbol_kind_t
-{
-  YYSYMBOL_YYEMPTY = -2,
-  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
-  YYSYMBOL_YYerror = 1,                    /* error  */
-  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
-  YYSYMBOL_cal_ENVCURLY = 3,               /* cal_ENVCURLY  */
-  YYSYMBOL_cal_NCURLY = 4,                 /* cal_NCURLY  */
-  YYSYMBOL_cal_DCURLY = 5,                 /* cal_DCURLY  */
-  YYSYMBOL_cal_DOLLAR = 6,                 /* "$"  */
-  YYSYMBOL_cal_LCURLY = 7,                 /* "{"  */
-  YYSYMBOL_cal_RCURLY = 8,                 /* "}"  */
-  YYSYMBOL_cal_NAME = 9,                   /* cal_NAME  */
-  YYSYMBOL_cal_BSLASH = 10,                /* "\\"  */
-  YYSYMBOL_cal_SYMBOL = 11,                /* cal_SYMBOL  */
-  YYSYMBOL_cal_AT = 12,                    /* "@"  */
-  YYSYMBOL_cal_ERROR = 13,                 /* cal_ERROR  */
-  YYSYMBOL_cal_ATNAME = 14,                /* cal_ATNAME  */
-  YYSYMBOL_YYACCEPT = 15,                  /* $accept  */
-  YYSYMBOL_Start = 16,                     /* Start  */
-  YYSYMBOL_GoalWithOptionalBackSlash = 17, /* GoalWithOptionalBackSlash  */
-  YYSYMBOL_Goal = 18,                      /* Goal  */
-  YYSYMBOL_String = 19,                    /* String  */
-  YYSYMBOL_OuterText = 20,                 /* OuterText  */
-  YYSYMBOL_Variable = 21,                  /* Variable  */
-  YYSYMBOL_EnvVarName = 22,                /* EnvVarName  */
-  YYSYMBOL_MultipleIds = 23,               /* MultipleIds  */
-  YYSYMBOL_ID = 24                         /* ID  */
-};
-typedef enum yysymbol_kind_t yysymbol_kind_t;
-
-
-
-
-#ifdef short
-# undef short
-#endif
-
-/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
-   <limits.h> and (if available) <stdint.h> are included
-   so that the code can choose integer types of a good width.  */
-
-#ifndef __PTRDIFF_MAX__
-# include <limits.h> /* INFRINGES ON USER NAME SPACE */
-# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
-#  define YY_STDINT_H
-# endif
-#endif
-
-/* Narrow types that promote to a signed type and that can represent a
-   signed or unsigned integer of at least N bits.  In tables they can
-   save space and decrease cache pressure.  Promoting to a signed type
-   helps avoid bugs in integer arithmetic.  */
-
-#ifdef __INT_LEAST8_MAX__
-typedef __INT_LEAST8_TYPE__ yytype_int8;
-#elif defined YY_STDINT_H
-typedef int_least8_t yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef __INT_LEAST16_MAX__
-typedef __INT_LEAST16_TYPE__ yytype_int16;
-#elif defined YY_STDINT_H
-typedef int_least16_t yytype_int16;
-#else
-typedef short yytype_int16;
-#endif
-
-/* Work around bug in HP-UX 11.23, which defines these macros
-   incorrectly for preprocessor constants.  This workaround can likely
-   be removed in 2023, as HPE has promised support for HP-UX 11.23
-   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
-   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
-#ifdef __hpux
-# undef UINT_LEAST8_MAX
-# undef UINT_LEAST16_MAX
-# define UINT_LEAST8_MAX 255
-# define UINT_LEAST16_MAX 65535
-#endif
-
-#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST8_TYPE__ yytype_uint8;
-#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
-       && UINT_LEAST8_MAX <= INT_MAX)
-typedef uint_least8_t yytype_uint8;
-#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
-typedef unsigned char yytype_uint8;
-#else
-typedef short yytype_uint8;
-#endif
-
-#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST16_TYPE__ yytype_uint16;
-#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
-       && UINT_LEAST16_MAX <= INT_MAX)
-typedef uint_least16_t yytype_uint16;
-#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
-typedef unsigned short yytype_uint16;
-#else
-typedef int yytype_uint16;
-#endif
-
-#ifndef YYPTRDIFF_T
-# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
-#  define YYPTRDIFF_T __PTRDIFF_TYPE__
-#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
-# elif defined PTRDIFF_MAX
-#  ifndef ptrdiff_t
-#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  endif
-#  define YYPTRDIFF_T ptrdiff_t
-#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
-# else
-#  define YYPTRDIFF_T long
-#  define YYPTRDIFF_MAXIMUM LONG_MAX
-# endif
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM                                  \
-  YY_CAST (YYPTRDIFF_T,                                 \
-           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
-            ? YYPTRDIFF_MAXIMUM                         \
-            : YY_CAST (YYSIZE_T, -1)))
-
-#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
-
-
-/* Stored state numbers (used for stacks). */
-typedef yytype_int8 yy_state_t;
-
-/* State numbers in computations.  */
-typedef int yy_state_fast_t;
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-
-#ifndef YY_ATTRIBUTE_PURE
-# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
-#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-#  define YY_ATTRIBUTE_PURE
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-# else
-#  define YY_ATTRIBUTE_UNUSED
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YY_USE(E) ((void) (E))
-#else
-# define YY_USE(E) /* empty */
-#endif
-
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
-# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
-#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
-    _Pragma ("GCC diagnostic push")                                     \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
-# else
-#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
-    _Pragma ("GCC diagnostic push")                                     \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# endif
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
-# define YY_IGNORE_USELESS_CAST_BEGIN                          \
-    _Pragma ("GCC diagnostic push")                            \
-    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
-# define YY_IGNORE_USELESS_CAST_END            \
-    _Pragma ("GCC diagnostic pop")
-#endif
-#ifndef YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_END
-#endif
-
-
-#define YY_ASSERT(E) ((void) (0 && (E)))
-
-#if 1
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* 1 */
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yy_state_t yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYPTRDIFF_T yynewbytes;                                         \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
-      }                                                                 \
-    while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYPTRDIFF_T yyi;                      \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  25
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   40
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  15
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  10
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  24
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  33
-
-/* YYMAXUTOK -- Last valid token kind.  */
-#define YYMAXUTOK   269
-
-
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, with out-of-bounds checking.  */
-#define YYTRANSLATE(YYX)                                \
-  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
-   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
-   : YYSYMBOL_YYUNDEF)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex.  */
-static const yytype_int8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14
-};
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint8 yyrline[] =
-{
-       0,   101,   101,   107,   110,   115,   118,   123,   126,   131,
-     134,   137,   140,   143,   146,   151,   154,   157,   160,   165,
-     168,   173,   176,   181,   184
-};
-#endif
-
-/** Accessing symbol of state STATE.  */
-#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
-
-#if 1
-/* The user-facing name of the symbol whose (internal) number is
-   YYSYMBOL.  No bounds checking.  */
-static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
-
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "\"end of file\"", "error", "\"invalid token\"", "cal_ENVCURLY",
-  "cal_NCURLY", "cal_DCURLY", "\"$\"", "\"{\"", "\"}\"", "cal_NAME",
-  "\"\\\\\"", "cal_SYMBOL", "\"@\"", "cal_ERROR", "cal_ATNAME", "$accept",
-  "Start", "GoalWithOptionalBackSlash", "Goal", "String", "OuterText",
-  "Variable", "EnvVarName", "MultipleIds", "ID", YY_NULLPTR
-};
-
-static const char *
-yysymbol_name (yysymbol_kind_t yysymbol)
-{
-  return yytname[yysymbol];
-}
-#endif
-
-#define YYPACT_NINF (-3)
-
-#define yypact_value_is_default(Yyn) \
-  ((Yyn) == YYPACT_NINF)
-
-#define YYTABLE_NINF (-1)
-
-#define yytable_value_is_error(Yyn) \
-  0
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-static const yytype_int8 yypact[] =
-{
-       0,    14,    26,    26,    -3,    -3,    -3,    -3,    -3,    -3,
-      -3,    10,    -3,     3,     0,    -3,    -3,    -3,    14,    -3,
-       7,    -3,    26,    13,    16,    -3,    -3,    -3,    -3,    -3,
-      -3,    -3,    -3
-};
-
-/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE does not specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_int8 yydefact[] =
-{
-       5,    21,    21,    21,    11,    12,    13,     9,    14,    10,
-      18,     0,     2,     3,     5,     7,     8,    23,    21,    24,
-       0,    19,    21,     0,     0,     1,     4,     6,    20,    15,
-      22,    16,    17
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-      -3,    -3,    -3,     8,    -3,    -3,     2,     9,    -2,    -3
-};
-
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-       0,    11,    12,    13,    14,    15,    19,    20,    21,    22
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule whose
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_int8 yytable[] =
-{
-      23,    24,    16,     1,     2,     3,     4,     5,     6,     7,
-      25,     8,     9,    26,    10,    29,    16,     1,     2,     3,
-      30,    31,    27,    17,    32,    18,     0,    28,    10,     1,
-       2,     3,     0,     0,     0,    17,     0,     0,     0,     0,
-      10
-};
-
-static const yytype_int8 yycheck[] =
-{
-       2,     3,     0,     3,     4,     5,     6,     7,     8,     9,
-       0,    11,    12,    10,    14,     8,    14,     3,     4,     5,
-      22,     8,    14,     9,     8,    11,    -1,    18,    14,     3,
-       4,     5,    -1,    -1,    -1,     9,    -1,    -1,    -1,    -1,
-      14
-};
-
-/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
-   state STATE-NUM.  */
-static const yytype_int8 yystos[] =
-{
-       0,     3,     4,     5,     6,     7,     8,     9,    11,    12,
-      14,    16,    17,    18,    19,    20,    21,     9,    11,    21,
-      22,    23,    24,    23,    23,     0,    10,    18,    22,     8,
-      23,     8,     8
-};
-
-/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
-static const yytype_int8 yyr1[] =
-{
-       0,    15,    16,    17,    17,    18,    18,    19,    19,    20,
-      20,    20,    20,    20,    20,    21,    21,    21,    21,    22,
-      22,    23,    23,    24,    24
-};
-
-/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
-static const yytype_int8 yyr2[] =
-{
-       0,     2,     1,     1,     2,     0,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     3,     3,     3,     1,     1,
-       2,     0,     2,     1,     1
-};
-
-
-enum { YYENOMEM = -2 };
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-#define YYNOMEM         goto yyexhaustedlab
-
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                    \
-  do                                                              \
-    if (yychar == YYEMPTY)                                        \
-      {                                                           \
-        yychar = (Token);                                         \
-        yylval = (Value);                                         \
-        YYPOPSTACK (yylen);                                       \
-        yystate = *yyssp;                                         \
-        goto yybackup;                                            \
-      }                                                           \
-    else                                                          \
-      {                                                           \
-        yyerror (yyscanner, YY_("syntax error: cannot back up")); \
-        YYERROR;                                                  \
-      }                                                           \
-  while (0)
-
-/* Backward compatibility with an undocumented macro.
-   Use YYerror or YYUNDEF. */
-#define YYERRCODE YYUNDEF
-
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-
-
-
-# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Kind, Value, yyscanner); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*-----------------------------------.
-| Print this symbol's value on YYO.  |
-`-----------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyo,
-                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
-{
-  FILE *yyoutput = yyo;
-  YY_USE (yyoutput);
-  YY_USE (yyscanner);
-  if (!yyvaluep)
-    return;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YY_USE (yykind);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-/*---------------------------.
-| Print this symbol on YYO.  |
-`---------------------------*/
-
-static void
-yy_symbol_print (FILE *yyo,
-                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
-{
-  YYFPRINTF (yyo, "%s %s (",
-             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
-
-  yy_symbol_value_print (yyo, yykind, yyvaluep, yyscanner);
-  YYFPRINTF (yyo, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
-                 int yyrule, yyscan_t yyscanner)
-{
-  int yylno = yyrline[yyrule];
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
-             yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
-                       &yyvsp[(yyi + 1) - (yynrhs)], yyscanner);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule, yyscanner); \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args) ((void) 0)
-# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-/* Context of a parse error.  */
-typedef struct
-{
-  yy_state_t *yyssp;
-  yysymbol_kind_t yytoken;
-} yypcontext_t;
-
-/* Put in YYARG at most YYARGN of the expected tokens given the
-   current YYCTX, and return the number of tokens stored in YYARG.  If
-   YYARG is null, return the number of expected tokens (guaranteed to
-   be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
-   Return 0 if there are more than YYARGN expected tokens, yet fill
-   YYARG up to YYARGN. */
-static int
-yypcontext_expected_tokens (const yypcontext_t *yyctx,
-                            yysymbol_kind_t yyarg[], int yyargn)
-{
-  /* Actual size of YYARG. */
-  int yycount = 0;
-  int yyn = yypact[+*yyctx->yyssp];
-  if (!yypact_value_is_default (yyn))
-    {
-      /* Start YYX at -YYN if negative to avoid negative indexes in
-         YYCHECK.  In other words, skip the first -YYN actions for
-         this state because they are default actions.  */
-      int yyxbegin = yyn < 0 ? -yyn : 0;
-      /* Stay within bounds of both yycheck and yytname.  */
-      int yychecklim = YYLAST - yyn + 1;
-      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-      int yyx;
-      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-        if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
-            && !yytable_value_is_error (yytable[yyx + yyn]))
-          {
-            if (!yyarg)
-              ++yycount;
-            else if (yycount == yyargn)
-              return 0;
-            else
-              yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
-          }
-    }
-  if (yyarg && yycount == 0 && 0 < yyargn)
-    yyarg[0] = YYSYMBOL_YYEMPTY;
-  return yycount;
-}
-
-
-
-
-#ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-#  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
-# else
-/* Return the length of YYSTR.  */
-static YYPTRDIFF_T
-yystrlen (const char *yystr)
-{
-  YYPTRDIFF_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-# endif
-#endif
-
-#ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#  define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-# endif
-#endif
-
-#ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYPTRDIFF_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYPTRDIFF_T yyn = 0;
-      char const *yyp = yystr;
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            else
-              goto append;
-
-          append:
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (yyres)
-    return yystpcpy (yyres, yystr) - yyres;
-  else
-    return yystrlen (yystr);
-}
-#endif
-
-
-static int
-yy_syntax_error_arguments (const yypcontext_t *yyctx,
-                           yysymbol_kind_t yyarg[], int yyargn)
-{
-  /* Actual size of YYARG. */
-  int yycount = 0;
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
-    {
-      int yyn;
-      if (yyarg)
-        yyarg[yycount] = yyctx->yytoken;
-      ++yycount;
-      yyn = yypcontext_expected_tokens (yyctx,
-                                        yyarg ? yyarg + 1 : yyarg, yyargn - 1);
-      if (yyn == YYENOMEM)
-        return YYENOMEM;
-      else
-        yycount += yyn;
-    }
-  return yycount;
-}
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
-                const yypcontext_t *yyctx)
-{
-  enum { YYARGS_MAX = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat: reported tokens (one for the "unexpected",
-     one per "expected"). */
-  yysymbol_kind_t yyarg[YYARGS_MAX];
-  /* Cumulated lengths of YYARG.  */
-  YYPTRDIFF_T yysize = 0;
-
-  /* Actual size of YYARG. */
-  int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
-  if (yycount == YYENOMEM)
-    return YYENOMEM;
-
-  switch (yycount)
-    {
-#define YYCASE_(N, S)                       \
-      case N:                               \
-        yyformat = S;                       \
-        break
-    default: /* Avoid compiler warnings. */
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-#undef YYCASE_
-    }
-
-  /* Compute error message size.  Don't count the "%s"s, but reserve
-     room for the terminator.  */
-  yysize = yystrlen (yyformat) - 2 * yycount + 1;
-  {
-    int yyi;
-    for (yyi = 0; yyi < yycount; ++yyi)
-      {
-        YYPTRDIFF_T yysize1
-          = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
-        if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
-          yysize = yysize1;
-        else
-          return YYENOMEM;
-      }
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return -1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
-          yyformat += 2;
-        }
-      else
-        {
-          ++yyp;
-          ++yyformat;
-        }
-  }
-  return 0;
-}
-
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg,
-            yysymbol_kind_t yykind, YYSTYPE *yyvaluep, yyscan_t yyscanner)
-{
-  YY_USE (yyvaluep);
-  YY_USE (yyscanner);
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YY_USE (yykind);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (yyscan_t yyscanner)
-{
-/* Lookahead token kind.  */
-int yychar;
-
-
-/* The semantic value of the lookahead symbol.  */
-/* Default value used for initialization, for pacifying older GCCs
-   or non-GCC compilers.  */
-YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
-YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
-
-    /* Number of syntax errors so far.  */
-    int yynerrs = 0;
-
-    yy_state_fast_t yystate = 0;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus = 0;
-
-    /* Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* Their size.  */
-    YYPTRDIFF_T yystacksize = YYINITDEPTH;
-
-    /* The state stack: array, bottom, top.  */
-    yy_state_t yyssa[YYINITDEPTH];
-    yy_state_t *yyss = yyssa;
-    yy_state_t *yyssp = yyss;
-
-    /* The semantic value stack: array, bottom, top.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs = yyvsa;
-    YYSTYPE *yyvsp = yyvs;
-
-  int yyn;
-  /* The return value of yyparse.  */
-  int yyresult;
-  /* Lookahead symbol kind.  */
-  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  goto yysetstate;
-
-
-/*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
-yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
-
-/*--------------------------------------------------------------------.
-| yysetstate -- set current state (the top of the stack) to yystate.  |
-`--------------------------------------------------------------------*/
-yysetstate:
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
-  YY_IGNORE_USELESS_CAST_BEGIN
-  *yyssp = YY_CAST (yy_state_t, yystate);
-  YY_IGNORE_USELESS_CAST_END
-  YY_STACK_PRINT (yyss, yyssp);
-
-  if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    YYNOMEM;
-#else
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYPTRDIFF_T yysize = yyssp - yyss + 1;
-
-# if defined yyoverflow
-      {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        yy_state_t *yyss1 = yyss;
-        YYSTYPE *yyvs1 = yyvs;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * YYSIZEOF (*yyssp),
-                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
-                    &yystacksize);
-        yyss = yyss1;
-        yyvs = yyvs1;
-      }
-# else /* defined YYSTACK_RELOCATE */
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-        YYNOMEM;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
-
-      {
-        yy_state_t *yyss1 = yyss;
-        union yyalloc *yyptr =
-          YY_CAST (union yyalloc *,
-                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
-        if (! yyptr)
-          YYNOMEM;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
-      }
-# endif
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YY_IGNORE_USELESS_CAST_BEGIN
-      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
-                  YY_CAST (long, yystacksize)));
-      YY_IGNORE_USELESS_CAST_END
-
-      if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
-    }
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
-
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token\n"));
-      yychar = yylex (&yylval, yyscanner);
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = YYEOF;
-      yytoken = YYSYMBOL_YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else if (yychar == YYerror)
-    {
-      /* The scanner already issued an error message, process directly
-         to error recovery.  But do not keep the error token as
-         lookahead, it is too special and may lead us to an endless
-         loop in error recovery. */
-      yychar = YYUNDEF;
-      yytoken = YYSYMBOL_YYerror;
-      goto yyerrlab1;
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-  yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-  case 2: /* Start: GoalWithOptionalBackSlash  */
-#line 101 "cmCommandArgumentParser.y"
-                            {
-    (yyval.str) = 0;
-    yyGetParser->SetResult((yyvsp[0].str));
-  }
-#line 1445 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 3: /* GoalWithOptionalBackSlash: Goal  */
-#line 107 "cmCommandArgumentParser.y"
-       {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1453 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 4: /* GoalWithOptionalBackSlash: Goal "\\"  */
-#line 110 "cmCommandArgumentParser.y"
-                  {
-    (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
-  }
-#line 1461 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 5: /* Goal: %empty  */
-#line 115 "cmCommandArgumentParser.y"
-  {
-    (yyval.str) = 0;
-  }
-#line 1469 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 6: /* Goal: String Goal  */
-#line 118 "cmCommandArgumentParser.y"
-              {
-    (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
-  }
-#line 1477 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 7: /* String: OuterText  */
-#line 123 "cmCommandArgumentParser.y"
-            {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1485 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 8: /* String: Variable  */
-#line 126 "cmCommandArgumentParser.y"
-           {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1493 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 9: /* OuterText: cal_NAME  */
-#line 131 "cmCommandArgumentParser.y"
-           {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1501 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 10: /* OuterText: "@"  */
-#line 134 "cmCommandArgumentParser.y"
-         {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1509 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 11: /* OuterText: "$"  */
-#line 137 "cmCommandArgumentParser.y"
-             {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1517 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 12: /* OuterText: "{"  */
-#line 140 "cmCommandArgumentParser.y"
-             {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1525 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 13: /* OuterText: "}"  */
-#line 143 "cmCommandArgumentParser.y"
-             {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1533 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 14: /* OuterText: cal_SYMBOL  */
-#line 146 "cmCommandArgumentParser.y"
-             {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1541 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 15: /* Variable: cal_ENVCURLY EnvVarName "}"  */
-#line 151 "cmCommandArgumentParser.y"
-                                     {
-    (yyval.str) = yyGetParser->ExpandSpecialVariable((yyvsp[-2].str), (yyvsp[-1].str));
-  }
-#line 1549 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 16: /* Variable: cal_NCURLY MultipleIds "}"  */
-#line 154 "cmCommandArgumentParser.y"
-                                    {
-    (yyval.str) = yyGetParser->ExpandSpecialVariable((yyvsp[-2].str), (yyvsp[-1].str));
-  }
-#line 1557 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 17: /* Variable: cal_DCURLY MultipleIds "}"  */
-#line 157 "cmCommandArgumentParser.y"
-                                    {
-    (yyval.str) = yyGetParser->ExpandVariable((yyvsp[-1].str));
-  }
-#line 1565 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 18: /* Variable: cal_ATNAME  */
-#line 160 "cmCommandArgumentParser.y"
-             {
-    (yyval.str) = yyGetParser->ExpandVariableForAt((yyvsp[0].str));
-  }
-#line 1573 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 19: /* EnvVarName: MultipleIds  */
-#line 165 "cmCommandArgumentParser.y"
-              {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1581 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 20: /* EnvVarName: cal_SYMBOL EnvVarName  */
-#line 168 "cmCommandArgumentParser.y"
-                        {
-    (yyval.str) = (yyvsp[-1].str);
-  }
-#line 1589 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 21: /* MultipleIds: %empty  */
-#line 173 "cmCommandArgumentParser.y"
-  {
-    (yyval.str) = 0;
-  }
-#line 1597 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 22: /* MultipleIds: ID MultipleIds  */
-#line 176 "cmCommandArgumentParser.y"
-                 {
-    (yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
-  }
-#line 1605 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 23: /* ID: cal_NAME  */
-#line 181 "cmCommandArgumentParser.y"
-           {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1613 "cmCommandArgumentParser.cxx"
-    break;
-
-  case 24: /* ID: Variable  */
-#line 184 "cmCommandArgumentParser.y"
-           {
-    (yyval.str) = (yyvsp[0].str);
-  }
-#line 1621 "cmCommandArgumentParser.cxx"
-    break;
-
-
-#line 1625 "cmCommandArgumentParser.cxx"
-
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-
-  *++yyvsp = yyval;
-
-  /* Now 'shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-  {
-    const int yylhs = yyr1[yyn] - YYNTOKENS;
-    const int yyi = yypgoto[yylhs] + *yyssp;
-    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
-               ? yytable[yyi]
-               : yydefgoto[yylhs]);
-  }
-
-  goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-      {
-        yypcontext_t yyctx
-          = {yyssp, yytoken};
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == -1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = YY_CAST (char *,
-                             YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
-            if (yymsg)
-              {
-                yysyntax_error_status
-                  = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
-                yymsgp = yymsg;
-              }
-            else
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = YYENOMEM;
-              }
-          }
-        yyerror (yyscanner, yymsgp);
-        if (yysyntax_error_status == YYENOMEM)
-          YYNOMEM;
-      }
-    }
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
-
-      if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
-      else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval, yyscanner);
-          yychar = YYEMPTY;
-        }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-  /* Pacify compilers when the user code never invokes YYERROR and the
-     label yyerrorlab therefore never appears in user code.  */
-  if (0)
-    YYERROR;
-  ++yynerrs;
-
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
-
-  /* Pop stack until we find a state that shifts the error token.  */
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYSYMBOL_YYerror;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-        YYABORT;
-
-
-      yydestruct ("Error: popping",
-                  YY_ACCESSING_SYMBOL (yystate), yyvsp, yyscanner);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturnlab;
-
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturnlab;
-
-
-/*-----------------------------------------------------------.
-| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
-`-----------------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (yyscanner, YY_("memory exhausted"));
-  yyresult = 2;
-  goto yyreturnlab;
-
-
-/*----------------------------------------------------------.
-| yyreturnlab -- parsing is finished, clean up and return.  |
-`----------------------------------------------------------*/
-yyreturnlab:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, yyscanner);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yyscanner);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-  return yyresult;
-}
-
-#line 189 "cmCommandArgumentParser.y"
-
-/* End of grammar */
-
-/*--------------------------------------------------------------------------*/
-void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message)
-{
-  yyGetParser->Error(message);
-}

+ 0 - 196
Source/LexerParser/cmCommandArgumentParser.y

@@ -1,196 +0,0 @@
-%{
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-/*
-
-This file must be translated to C and modified to build everywhere.
-
-Run bison like this:
-
-  bison --name-prefix=cmCommandArgument_yy --defines=cmCommandArgumentParserTokens.h -ocmCommandArgumentParser.cxx cmCommandArgumentParser.y
-
-*/
-
-#include "cmConfigure.h" // IWYU pragma: keep
-
-#include <string.h>
-
-#define yyGetParser (cmCommandArgument_yyget_extra(yyscanner))
-
-/* Make sure malloc and free are available on QNX.  */
-#ifdef __QNX__
-# include <malloc.h>
-#endif
-
-/* Make sure the parser uses standard memory allocation.  The default
-   generated parser malloc/free declarations do not work on all
-   platforms.  */
-#include <stdlib.h>
-#define YYMALLOC malloc
-#define YYFREE free
-
-/*-------------------------------------------------------------------------*/
-#include "cmCommandArgumentParserHelper.h" /* Interface to parser object.  */
-#include "cmCommandArgumentLexer.h"  /* Interface to lexer object.  */
-
-/* Forward declare the lexer entry point.  */
-YY_DECL;
-
-/* Helper function to forward error callback from parser.  */
-static void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message);
-
-/* Configure the parser to support large input.  */
-#define YYMAXDEPTH 100000
-#define YYINITDEPTH 10000
-
-/* Disable some warnings in the generated code.  */
-#ifdef _MSC_VER
-# pragma warning (disable: 4102) /* Unused goto label.  */
-# pragma warning (disable: 4065) /* Switch statement contains default but no
-                                    case. */
-# pragma warning (disable: 4244) /* loss of precision */
-# pragma warning (disable: 4702) /* unreachable code */
-#endif
-#if defined(__GNUC__) && __GNUC__ >= 8
-# pragma GCC diagnostic ignored "-Wconversion"
-# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
-#endif
-#if defined(__clang__) && defined(__has_warning)
-# if __has_warning("-Wunused-but-set-variable")
-#  pragma clang diagnostic ignored "-Wunused-but-set-variable"
-# endif
-#endif
-%}
-
-/* Generate a reentrant parser object.  */
-%define api.pure
-
-/* Configure the parser to use a lexer object.  */
-%lex-param   {yyscan_t yyscanner}
-%parse-param {yyscan_t yyscanner}
-
-%define parse.error verbose
-
-/*
-%union {
-  char* string;
-}
-*/
-
-/*-------------------------------------------------------------------------*/
-/* Tokens */
-%token cal_ENVCURLY
-%token cal_NCURLY
-%token cal_DCURLY
-%token cal_DOLLAR "$"
-%token cal_LCURLY "{"
-%token cal_RCURLY "}"
-%token cal_NAME
-%token cal_BSLASH "\\"
-%token cal_SYMBOL
-%token cal_AT     "@"
-%token cal_ERROR
-%token cal_ATNAME
-
-/*-------------------------------------------------------------------------*/
-/* grammar */
-%%
-
-
-Start:
-  GoalWithOptionalBackSlash {
-    $<str>$ = 0;
-    yyGetParser->SetResult($<str>1);
-  }
-
-GoalWithOptionalBackSlash:
-  Goal {
-    $<str>$ = $<str>1;
-  }
-| Goal cal_BSLASH {
-    $<str>$ = yyGetParser->CombineUnions($<str>1, $<str>2);
-  }
-
-Goal:
-  {
-    $<str>$ = 0;
-  }
-| String Goal {
-    $<str>$ = yyGetParser->CombineUnions($<str>1, $<str>2);
-  }
-
-String:
-  OuterText {
-    $<str>$ = $<str>1;
-  }
-| Variable {
-    $<str>$ = $<str>1;
-  }
-
-OuterText:
-  cal_NAME {
-    $<str>$ = $<str>1;
-  }
-| cal_AT {
-    $<str>$ = $<str>1;
-  }
-| cal_DOLLAR {
-    $<str>$ = $<str>1;
-  }
-| cal_LCURLY {
-    $<str>$ = $<str>1;
-  }
-| cal_RCURLY {
-    $<str>$ = $<str>1;
-  }
-| cal_SYMBOL {
-    $<str>$ = $<str>1;
-  }
-
-Variable:
-  cal_ENVCURLY EnvVarName cal_RCURLY {
-    $<str>$ = yyGetParser->ExpandSpecialVariable($<str>1, $<str>2);
-  }
-| cal_NCURLY MultipleIds cal_RCURLY {
-    $<str>$ = yyGetParser->ExpandSpecialVariable($<str>1, $<str>2);
-  }
-| cal_DCURLY MultipleIds cal_RCURLY {
-    $<str>$ = yyGetParser->ExpandVariable($<str>2);
-  }
-| cal_ATNAME {
-    $<str>$ = yyGetParser->ExpandVariableForAt($<str>1);
-  }
-
-EnvVarName:
-  MultipleIds {
-    $<str>$ = $<str>1;
-  }
-| cal_SYMBOL EnvVarName {
-    $<str>$ = $<str>1;
-  }
-
-MultipleIds:
-  {
-    $<str>$ = 0;
-  }
-| ID MultipleIds {
-    $<str>$ = yyGetParser->CombineUnions($<str>1, $<str>2);
-  }
-
-ID:
-  cal_NAME {
-    $<str>$ = $<str>1;
-  }
-| Variable {
-    $<str>$ = $<str>1;
-  }
-;
-
-%%
-/* End of grammar */
-
-/*--------------------------------------------------------------------------*/
-void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message)
-{
-  yyGetParser->Error(message);
-}

+ 0 - 81
Source/LexerParser/cmCommandArgumentParserTokens.h

@@ -1,81 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.8.2.  */
-
-/* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
-   Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
-   especially those whose name start with YY_ or yy_.  They are
-   private implementation details that can be changed or removed.  */
-
-#ifndef YY_CMCOMMANDARGUMENT_YY_CMCOMMANDARGUMENTPARSERTOKENS_H_INCLUDED
-# define YY_CMCOMMANDARGUMENT_YY_CMCOMMANDARGUMENTPARSERTOKENS_H_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int cmCommandArgument_yydebug;
-#endif
-
-/* Token kinds.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    YYEMPTY = -2,
-    YYEOF = 0,                     /* "end of file"  */
-    YYerror = 256,                 /* error  */
-    YYUNDEF = 257,                 /* "invalid token"  */
-    cal_ENVCURLY = 258,            /* cal_ENVCURLY  */
-    cal_NCURLY = 259,              /* cal_NCURLY  */
-    cal_DCURLY = 260,              /* cal_DCURLY  */
-    cal_DOLLAR = 261,              /* "$"  */
-    cal_LCURLY = 262,              /* "{"  */
-    cal_RCURLY = 263,              /* "}"  */
-    cal_NAME = 264,                /* cal_NAME  */
-    cal_BSLASH = 265,              /* "\\"  */
-    cal_SYMBOL = 266,              /* cal_SYMBOL  */
-    cal_AT = 267,                  /* "@"  */
-    cal_ERROR = 268,               /* cal_ERROR  */
-    cal_ATNAME = 269               /* cal_ATNAME  */
-  };
-  typedef enum yytokentype yytoken_kind_t;
-#endif
-
-/* Value type.  */
-
-
-
-
-int cmCommandArgument_yyparse (yyscan_t yyscanner);
-
-
-#endif /* !YY_CMCOMMANDARGUMENT_YY_CMCOMMANDARGUMENTPARSERTOKENS_H_INCLUDED  */

+ 1 - 2
Source/QtDialog/QCMake.cxx

@@ -59,8 +59,7 @@ QCMake::QCMake(QObject* p)
     [this] { return this->interruptCallback(); });
     [this] { return this->interruptCallback(); });
 
 
   std::vector<cmake::GeneratorInfo> generators;
   std::vector<cmake::GeneratorInfo> generators;
-  this->CMakeInstance->GetRegisteredGenerators(
-    generators, /*includeNamesWithPlatform=*/false);
+  this->CMakeInstance->GetRegisteredGenerators(generators);
 
 
   for (cmake::GeneratorInfo const& gen : generators) {
   for (cmake::GeneratorInfo const& gen : generators) {
     this->AvailableGenerators.push_back(gen);
     this->AvailableGenerators.push_back(gen);

+ 0 - 296
Source/cmCommandArgumentParserHelper.cxx

@@ -1,296 +0,0 @@
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-#include "cmCommandArgumentParserHelper.h"
-
-#include <cstring>
-#include <iostream>
-#include <sstream>
-#include <utility>
-
-#include <cm/memory>
-#include <cm/optional>
-#include <cmext/string_view>
-
-#include "cmCommandArgumentLexer.h"
-#include "cmListFileCache.h"
-#include "cmMakefile.h"
-#include "cmState.h"
-#include "cmStringAlgorithms.h"
-#include "cmSystemTools.h"
-#include "cmValue.h"
-
-int cmCommandArgument_yyparse(yyscan_t yyscanner);
-//
-cmCommandArgumentParserHelper::cmCommandArgumentParserHelper()
-{
-  this->FileLine = -1;
-  this->FileName = nullptr;
-  this->RemoveEmpty = true;
-
-  this->NoEscapeMode = false;
-  this->ReplaceAtSyntax = false;
-}
-
-cmCommandArgumentParserHelper::~cmCommandArgumentParserHelper()
-{
-  this->CleanupParser();
-}
-
-void cmCommandArgumentParserHelper::SetLineFile(long line, const char* file)
-{
-  this->FileLine = line;
-  this->FileName = file;
-}
-
-const char* cmCommandArgumentParserHelper::AddString(const std::string& str)
-{
-  if (str.empty()) {
-    return "";
-  }
-  auto stVal = cm::make_unique<char[]>(str.size() + 1);
-  strcpy(stVal.get(), str.c_str());
-  this->Variables.push_back(std::move(stVal));
-  return this->Variables.back().get();
-}
-
-const char* cmCommandArgumentParserHelper::ExpandSpecialVariable(
-  const char* key, const char* var)
-{
-  if (!key) {
-    return this->ExpandVariable(var);
-  }
-  if (!var) {
-    return "";
-  }
-  if (strcmp(key, "ENV") == 0) {
-    std::string str;
-    if (cmSystemTools::GetEnv(var, str)) {
-      if (this->EscapeQuotes) {
-        return this->AddString(cmEscapeQuotes(str));
-      }
-      return this->AddString(str);
-    }
-    return "";
-  }
-  if (strcmp(key, "CACHE") == 0) {
-    if (cmValue c =
-          this->Makefile->GetState()->GetInitializedCacheValue(var)) {
-      if (this->EscapeQuotes) {
-        return this->AddString(cmEscapeQuotes(*c));
-      }
-      return this->AddString(*c);
-    }
-    return "";
-  }
-  std::ostringstream e;
-  e << "Syntax $" << key << "{} is not supported.  "
-    << "Only ${}, $ENV{}, and $CACHE{} are allowed.";
-  this->SetError(e.str());
-  return nullptr;
-}
-
-const char* cmCommandArgumentParserHelper::ExpandVariable(const char* var)
-{
-  if (!var) {
-    return nullptr;
-  }
-  if (this->FileLine >= 0 && strcmp(var, "CMAKE_CURRENT_LIST_LINE") == 0) {
-    std::string line;
-    cmListFileBacktrace bt = this->Makefile->GetBacktrace();
-    cmListFileContext const& top = bt.Top();
-    if (top.DeferId) {
-      line = cmStrCat("DEFERRED:"_s, *top.DeferId);
-    } else {
-      line = std::to_string(this->FileLine);
-    }
-    return this->AddString(line);
-  }
-  cmValue value = this->Makefile->GetDefinition(var);
-  if (!value) {
-    this->Makefile->MaybeWarnUninitialized(var, this->FileName);
-    if (!this->RemoveEmpty) {
-      return nullptr;
-    }
-  }
-  if (this->EscapeQuotes && value) {
-    return this->AddString(cmEscapeQuotes(*value));
-  }
-  return this->AddString(value);
-}
-
-const char* cmCommandArgumentParserHelper::ExpandVariableForAt(const char* var)
-{
-  if (this->ReplaceAtSyntax) {
-    // try to expand the variable
-    const char* ret = this->ExpandVariable(var);
-    // if the return was 0 and we want to replace empty strings
-    // then return an empty string
-    if (!ret && this->RemoveEmpty) {
-      return this->AddString("");
-    }
-    // if the ret was not 0, then return it
-    if (ret) {
-      return ret;
-    }
-  }
-  // at this point we want to put it back because of one of these cases:
-  // - this->ReplaceAtSyntax is false
-  // - this->ReplaceAtSyntax is true, but this->RemoveEmpty is false,
-  //   and the variable was not defined
-  std::string ref = cmStrCat('@', var, '@');
-  return this->AddString(ref);
-}
-
-const char* cmCommandArgumentParserHelper::CombineUnions(const char* in1,
-                                                         const char* in2)
-{
-  if (!in1) {
-    return in2;
-  }
-  if (!in2) {
-    return in1;
-  }
-  size_t len = strlen(in1) + strlen(in2) + 1;
-  auto out = cm::make_unique<char[]>(len);
-  strcpy(out.get(), in1);
-  strcat(out.get(), in2);
-  this->Variables.push_back(std::move(out));
-  return this->Variables.back().get();
-}
-
-void cmCommandArgumentParserHelper::AllocateParserType(
-  cmCommandArgumentParserHelper::ParserType* pt, const char* str, int len)
-{
-  pt->str = nullptr;
-  if (len == 0) {
-    len = static_cast<int>(strlen(str));
-  }
-  if (len == 0) {
-    return;
-  }
-  auto out = cm::make_unique<char[]>(len + 1);
-  memcpy(out.get(), str, len);
-  out.get()[len] = 0;
-  pt->str = out.get();
-  this->Variables.push_back(std::move(out));
-}
-
-bool cmCommandArgumentParserHelper::HandleEscapeSymbol(
-  cmCommandArgumentParserHelper::ParserType* pt, char symbol)
-{
-  switch (symbol) {
-    case '\\':
-    case '"':
-    case ' ':
-    case '#':
-    case '(':
-    case ')':
-    case '$':
-    case '@':
-    case '^':
-      this->AllocateParserType(pt, &symbol, 1);
-      break;
-    case ';':
-      this->AllocateParserType(pt, "\\;", 2);
-      break;
-    case 't':
-      this->AllocateParserType(pt, "\t", 1);
-      break;
-    case 'n':
-      this->AllocateParserType(pt, "\n", 1);
-      break;
-    case 'r':
-      this->AllocateParserType(pt, "\r", 1);
-      break;
-    case '0':
-      this->AllocateParserType(pt, "\0", 1);
-      break;
-    default: {
-      std::ostringstream e;
-      e << "Invalid escape sequence \\" << symbol;
-      this->SetError(e.str());
-    }
-      return false;
-  }
-  return true;
-}
-
-void cmCommandArgument_SetupEscapes(yyscan_t yyscanner, bool noEscapes);
-
-int cmCommandArgumentParserHelper::ParseString(std::string const& str,
-                                               int verb)
-{
-  if (str.empty()) {
-    return 0;
-  }
-  this->InputSize = str.size();
-  this->Verbose = verb;
-
-  this->Result.clear();
-
-  yyscan_t yyscanner;
-  cmCommandArgument_yylex_init(&yyscanner);
-  auto* scanBuf = cmCommandArgument_yy_scan_string(str.c_str(), yyscanner);
-  cmCommandArgument_yyset_extra(this, yyscanner);
-  cmCommandArgument_SetupEscapes(yyscanner, this->NoEscapeMode);
-  int res = cmCommandArgument_yyparse(yyscanner);
-  cmCommandArgument_yy_delete_buffer(scanBuf, yyscanner);
-  cmCommandArgument_yylex_destroy(yyscanner);
-  if (res != 0) {
-    return 0;
-  }
-
-  this->CleanupParser();
-
-  if (this->Verbose) {
-    std::cerr << "Expanding [" << str << "] produced: [" << this->Result << "]"
-              << std::endl;
-  }
-  return 1;
-}
-
-void cmCommandArgumentParserHelper::CleanupParser()
-{
-  this->Variables.clear();
-}
-
-void cmCommandArgumentParserHelper::Error(const char* str)
-{
-  auto pos = this->InputBufferPos;
-  auto const isEof = (this->InputSize < this->InputBufferPos);
-  if (!isEof) {
-    pos -= this->LastTokenLength;
-  }
-
-  std::ostringstream ostr;
-  ostr << str << " (" << pos << ")";
-  this->SetError(ostr.str());
-}
-
-void cmCommandArgumentParserHelper::SetMakefile(const cmMakefile* mf)
-{
-  this->Makefile = mf;
-}
-
-void cmCommandArgumentParserHelper::SetResult(const char* value)
-{
-  if (!value) {
-    this->Result.clear();
-    return;
-  }
-  this->Result = value;
-}
-
-void cmCommandArgumentParserHelper::SetError(std::string const& msg)
-{
-  // Keep only the first error.
-  if (this->ErrorString.empty()) {
-    this->ErrorString = msg;
-  }
-}
-
-void cmCommandArgumentParserHelper::UpdateInputPosition(int const tokenLength)
-{
-  this->InputBufferPos += tokenLength;
-  this->LastTokenLength = tokenLength;
-}

+ 0 - 91
Source/cmCommandArgumentParserHelper.h

@@ -1,91 +0,0 @@
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-#pragma once
-
-#include "cmConfigure.h" // IWYU pragma: keep
-
-#include <memory>
-#include <string>
-#include <vector>
-
-class cmMakefile;
-
-class cmCommandArgumentParserHelper
-{
-public:
-  struct ParserType
-  {
-    const char* str;
-  };
-
-  cmCommandArgumentParserHelper();
-  ~cmCommandArgumentParserHelper();
-
-  cmCommandArgumentParserHelper(cmCommandArgumentParserHelper const&) = delete;
-  cmCommandArgumentParserHelper& operator=(
-    cmCommandArgumentParserHelper const&) = delete;
-
-  int ParseString(std::string const& str, int verb);
-
-  // For the lexer:
-  void AllocateParserType(cmCommandArgumentParserHelper::ParserType* pt,
-                          const char* str, int len = 0);
-  bool HandleEscapeSymbol(cmCommandArgumentParserHelper::ParserType* pt,
-                          char symbol);
-
-  void Error(const char* str);
-
-  // For yacc
-  const char* CombineUnions(const char* in1, const char* in2);
-
-  const char* ExpandSpecialVariable(const char* key, const char* var);
-  const char* ExpandVariable(const char* var);
-  const char* ExpandVariableForAt(const char* var);
-  void SetResult(const char* value);
-
-  void SetMakefile(const cmMakefile* mf);
-
-  void UpdateInputPosition(int tokenLength);
-
-  std::string& GetResult() { return this->Result; }
-
-  void SetLineFile(long line, const char* file);
-  void SetEscapeQuotes(bool b) { this->EscapeQuotes = b; }
-  void SetNoEscapeMode(bool b) { this->NoEscapeMode = b; }
-  void SetReplaceAtSyntax(bool b) { this->ReplaceAtSyntax = b; }
-  void SetRemoveEmpty(bool b) { this->RemoveEmpty = b; }
-
-  const char* GetError() { return this->ErrorString.c_str(); }
-
-private:
-  std::string::size_type InputBufferPos{ 1 };
-  std::string::size_type LastTokenLength{};
-  std::string::size_type InputSize{};
-  std::vector<char> OutputBuffer;
-
-  void Print(const char* place, const char* str);
-  void SafePrintMissing(const char* str, int line, int cnt);
-
-  const char* AddString(const std::string& str);
-
-  void CleanupParser();
-  void SetError(std::string const& msg);
-
-  std::vector<std::unique_ptr<char[]>> Variables;
-  const cmMakefile* Makefile;
-  std::string Result;
-  std::string ErrorString;
-  const char* FileName;
-  long FileLine;
-  int Verbose;
-  bool EscapeQuotes;
-  bool NoEscapeMode;
-  bool ReplaceAtSyntax;
-  bool RemoveEmpty;
-};
-
-#define YYSTYPE cmCommandArgumentParserHelper::ParserType
-#define YYSTYPE_IS_DECLARED
-#define YY_EXTRA_TYPE cmCommandArgumentParserHelper*
-#define YY_DECL                                                               \
-  int cmCommandArgument_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)

+ 4 - 49
Source/cmConditionEvaluator.cxx

@@ -25,7 +25,6 @@
 #include "cmStringAlgorithms.h"
 #include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmValue.h"
 #include "cmValue.h"
-#include "cmake.h"
 
 
 namespace {
 namespace {
 auto const keyAND = "AND"_s;
 auto const keyAND = "AND"_s;
@@ -219,7 +218,6 @@ cmConditionEvaluator::cmConditionEvaluator(cmMakefile& makefile,
                                            cmListFileBacktrace bt)
                                            cmListFileBacktrace bt)
   : Makefile(makefile)
   : Makefile(makefile)
   , Backtrace(std::move(bt))
   , Backtrace(std::move(bt))
-  , Policy54Status(makefile.GetPolicyStatus(cmPolicies::CMP0054))
   , Policy57Status(makefile.GetPolicyStatus(cmPolicies::CMP0057))
   , Policy57Status(makefile.GetPolicyStatus(cmPolicies::CMP0057))
   , Policy64Status(makefile.GetPolicyStatus(cmPolicies::CMP0064))
   , Policy64Status(makefile.GetPolicyStatus(cmPolicies::CMP0064))
   , Policy139Status(makefile.GetPolicyStatus(cmPolicies::CMP0139))
   , Policy139Status(makefile.GetPolicyStatus(cmPolicies::CMP0139))
@@ -298,32 +296,11 @@ bool cmConditionEvaluator::IsTrue(
 cmValue cmConditionEvaluator::GetDefinitionIfUnquoted(
 cmValue cmConditionEvaluator::GetDefinitionIfUnquoted(
   cmExpandedCommandArgument const& argument) const
   cmExpandedCommandArgument const& argument) const
 {
 {
-  if ((this->Policy54Status != cmPolicies::WARN &&
-       this->Policy54Status != cmPolicies::OLD) &&
-      argument.WasQuoted()) {
+  if (argument.WasQuoted()) {
     return nullptr;
     return nullptr;
   }
   }
 
 
-  cmValue def = this->Makefile.GetDefinition(argument.GetValue());
-
-  if (def && argument.WasQuoted() &&
-      this->Policy54Status == cmPolicies::WARN) {
-    if (!this->Makefile.HasCMP0054AlreadyBeenReported(this->Backtrace.Top())) {
-      std::ostringstream e;
-      // clang-format off
-      e << (cmPolicies::GetPolicyWarning(cmPolicies::CMP0054))
-        << "\n"
-           "Quoted variables like \"" << argument.GetValue() << "\" "
-           "will no longer be dereferenced when the policy is set to NEW.  "
-           "Since the policy is not set the OLD behavior will be used.";
-      // clang-format on
-
-      this->Makefile.GetCMakeInstance()->IssueMessage(
-        MessageType::AUTHOR_WARNING, e.str(), this->Backtrace);
-    }
-  }
-
-  return def;
+  return this->Makefile.GetDefinition(argument.GetValue());
 }
 }
 
 
 //=========================================================================
 //=========================================================================
@@ -344,33 +321,11 @@ bool cmConditionEvaluator::IsKeyword(
   cm::static_string_view keyword,
   cm::static_string_view keyword,
   const cmExpandedCommandArgument& argument) const
   const cmExpandedCommandArgument& argument) const
 {
 {
-  if ((this->Policy54Status != cmPolicies::WARN &&
-       this->Policy54Status != cmPolicies::OLD) &&
-      argument.WasQuoted()) {
+  if (argument.WasQuoted()) {
     return false;
     return false;
   }
   }
 
 
-  const auto isKeyword = argument.GetValue() == keyword;
-
-  if (isKeyword && argument.WasQuoted() &&
-      this->Policy54Status == cmPolicies::WARN) {
-    if (!this->Makefile.HasCMP0054AlreadyBeenReported(this->Backtrace.Top())) {
-      std::ostringstream e;
-      // clang-format off
-      e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0054)
-        << "\n"
-           "Quoted keywords like \"" << argument.GetValue() << "\" "
-           "will no longer be interpreted as keywords "
-           "when the policy is set to NEW.  "
-           "Since the policy is not set the OLD behavior will be used.";
-      // clang-format on
-
-      this->Makefile.GetCMakeInstance()->IssueMessage(
-        MessageType::AUTHOR_WARNING, e.str(), this->Backtrace);
-    }
-  }
-
-  return isKeyword;
+  return argument.GetValue() == keyword;
 }
 }
 
 
 //=========================================================================
 //=========================================================================

+ 0 - 2
Source/cmConditionEvaluator.h

@@ -31,7 +31,6 @@ public:
 private:
 private:
   class cmArgumentList;
   class cmArgumentList;
 
 
-  // Filter the given variable definition based on policy CMP0054.
   cmValue GetDefinitionIfUnquoted(
   cmValue GetDefinitionIfUnquoted(
     const cmExpandedCommandArgument& argument) const;
     const cmExpandedCommandArgument& argument) const;
 
 
@@ -67,7 +66,6 @@ private:
 
 
   cmMakefile& Makefile;
   cmMakefile& Makefile;
   cmListFileBacktrace Backtrace;
   cmListFileBacktrace Backtrace;
-  cmPolicies::PolicyStatus Policy54Status;
   cmPolicies::PolicyStatus Policy57Status;
   cmPolicies::PolicyStatus Policy57Status;
   cmPolicies::PolicyStatus Policy64Status;
   cmPolicies::PolicyStatus Policy64Status;
   cmPolicies::PolicyStatus Policy139Status;
   cmPolicies::PolicyStatus Policy139Status;

+ 3 - 36
Source/cmExportInstallFileGenerator.cxx

@@ -19,7 +19,6 @@
 #include "cmLocalGenerator.h"
 #include "cmLocalGenerator.h"
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 #include "cmMessageType.h"
 #include "cmMessageType.h"
-#include "cmPolicies.h"
 #include "cmStringAlgorithms.h"
 #include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 #include "cmTarget.h"
 #include "cmTarget.h"
@@ -456,43 +455,11 @@ bool cmExportInstallFileGenerator::CheckInterfaceDirs(
     bool inSource = isSubDirectory(li, topSourceDir);
     bool inSource = isSubDirectory(li, topSourceDir);
     if (isSubDirectory(li, installDir)) {
     if (isSubDirectory(li, installDir)) {
       // The include directory is inside the install tree.  If the
       // The include directory is inside the install tree.  If the
-      // install tree is not inside the source tree or build tree then
+      // install tree is inside the source tree or build tree then do not
       // fall through to the checks below that the include directory is not
       // fall through to the checks below that the include directory is not
       // also inside the source tree or build tree.
       // also inside the source tree or build tree.
-      bool shouldContinue =
-        (!inBinary || isSubDirectory(installDir, topBinaryDir)) &&
-        (!inSource || isSubDirectory(installDir, topSourceDir));
-
-      if (prop == "INTERFACE_INCLUDE_DIRECTORIES") {
-        if (!shouldContinue) {
-          switch (target->GetPolicyStatusCMP0052()) {
-            case cmPolicies::WARN: {
-              std::ostringstream s;
-              s << cmPolicies::GetPolicyWarning(cmPolicies::CMP0052) << "\n";
-              s << "Directory:\n    \"" << li
-                << "\"\nin "
-                   "INTERFACE_INCLUDE_DIRECTORIES of target \""
-                << target->GetName()
-                << "\" is a subdirectory of the install "
-                   "directory:\n    \""
-                << installDir
-                << "\"\nhowever it is also "
-                   "a subdirectory of the "
-                << (inBinary ? "build" : "source") << " tree:\n    \""
-                << (inBinary ? topBinaryDir : topSourceDir) << "\"\n";
-              target->GetLocalGenerator()->IssueMessage(
-                MessageType::AUTHOR_WARNING, s.str());
-              CM_FALLTHROUGH;
-            }
-            case cmPolicies::OLD:
-              shouldContinue = true;
-              break;
-            case cmPolicies::NEW:
-              break;
-          }
-        }
-      }
-      if (shouldContinue) {
+      if ((!inBinary || isSubDirectory(installDir, topBinaryDir)) &&
+          (!inSource || isSubDirectory(installDir, topSourceDir))) {
         continue;
         continue;
       }
       }
     }
     }

+ 1 - 1
Source/cmGeneratorTarget.cxx

@@ -60,7 +60,7 @@ using UseTo = cmGeneratorTarget::UseTo;
 
 
 template <>
 template <>
 cmValue cmTargetPropertyComputer::GetSources<cmGeneratorTarget>(
 cmValue cmTargetPropertyComputer::GetSources<cmGeneratorTarget>(
-  cmGeneratorTarget const* tgt, cmMakefile const& /* mf */)
+  cmGeneratorTarget const* tgt)
 {
 {
   return tgt->GetSourcesProperty();
   return tgt->GetSourcesProperty();
 }
 }

+ 2 - 7
Source/cmGlobalGeneratorFactory.h

@@ -28,14 +28,13 @@ public:
 
 
   /** Create a GlobalGenerator */
   /** Create a GlobalGenerator */
   virtual std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   virtual std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& n, bool allowArch, cmake* cm) const = 0;
+    const std::string& n, cmake* cm) const = 0;
 
 
   /** Get the documentation entry for this factory */
   /** Get the documentation entry for this factory */
   virtual cmDocumentationEntry GetDocumentation() const = 0;
   virtual cmDocumentationEntry GetDocumentation() const = 0;
 
 
   /** Get the names of the current registered generators */
   /** Get the names of the current registered generators */
   virtual std::vector<std::string> GetGeneratorNames() const = 0;
   virtual std::vector<std::string> GetGeneratorNames() const = 0;
-  virtual std::vector<std::string> GetGeneratorNamesWithPlatform() const = 0;
 
 
   /** Determine whether or not this generator supports toolsets */
   /** Determine whether or not this generator supports toolsets */
   virtual bool SupportsToolset() const = 0;
   virtual bool SupportsToolset() const = 0;
@@ -56,7 +55,7 @@ class cmGlobalGeneratorSimpleFactory : public cmGlobalGeneratorFactory
 public:
 public:
   /** Create a GlobalGenerator */
   /** Create a GlobalGenerator */
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool /*allowArch*/, cmake* cm) const override
+    const std::string& name, cmake* cm) const override
   {
   {
     if (name != T::GetActualName()) {
     if (name != T::GetActualName()) {
       return std::unique_ptr<cmGlobalGenerator>();
       return std::unique_ptr<cmGlobalGenerator>();
@@ -75,10 +74,6 @@ public:
   {
   {
     return { T::GetActualName() };
     return { T::GetActualName() };
   }
   }
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    return {};
-  }
 
 
   /** Determine whether or not this generator supports toolsets */
   /** Determine whether or not this generator supports toolsets */
   bool SupportsToolset() const override { return T::SupportsToolset(); }
   bool SupportsToolset() const override { return T::SupportsToolset(); }

+ 3 - 19
Source/cmGlobalVisualStudio10Generator.cxx

@@ -53,9 +53,8 @@ static void ConvertToWindowsSlashes(std::string& s)
 }
 }
 
 
 cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
 cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
-  cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio8Generator(cm, name, platformInGeneratorName)
+  cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio8Generator(cm, name)
 {
 {
   this->DefaultCudaFlagTableName = "v10";
   this->DefaultCudaFlagTableName = "v10";
   this->DefaultCudaHostFlagTableName = "v10";
   this->DefaultCudaHostFlagTableName = "v10";
@@ -485,13 +484,6 @@ bool cmGlobalVisualStudio10Generator::InitializeSystem(cmMakefile* mf)
       return false;
       return false;
     }
     }
   } else if (this->SystemName == "Android"_s) {
   } else if (this->SystemName == "Android"_s) {
-    if (this->PlatformInGeneratorName) {
-      mf->IssueMessage(
-        MessageType::FATAL_ERROR,
-        cmStrCat("CMAKE_SYSTEM_NAME is 'Android' but CMAKE_GENERATOR ",
-                 "specifies a platform too: '", this->GetName(), '\''));
-      return false;
-    }
     if (mf->GetSafeDefinition("CMAKE_GENERATOR_PLATFORM") ==
     if (mf->GetSafeDefinition("CMAKE_GENERATOR_PLATFORM") ==
         "Tegra-Android"_s) {
         "Tegra-Android"_s) {
       if (!this->InitializeTegraAndroid(mf)) {
       if (!this->InitializeTegraAndroid(mf)) {
@@ -513,16 +505,8 @@ bool cmGlobalVisualStudio10Generator::InitializeWindows(cmMakefile*)
   return true;
   return true;
 }
 }
 
 
-bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile* mf)
+bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile*)
 {
 {
-  if (this->PlatformInGeneratorName) {
-    mf->IssueMessage(
-      MessageType::FATAL_ERROR,
-      cmStrCat("CMAKE_SYSTEM_NAME is 'WindowsCE' but CMAKE_GENERATOR ",
-               "specifies a platform too: '", this->GetName(), '\''));
-    return false;
-  }
-
   this->DefaultPlatformToolset = this->SelectWindowsCEToolset();
   this->DefaultPlatformToolset = this->SelectWindowsCEToolset();
 
 
   return true;
   return true;

+ 1 - 2
Source/cmGlobalVisualStudio10Generator.h

@@ -185,8 +185,7 @@ public:
   bool IsBuildInParallelSupported() const;
   bool IsBuildInParallelSupported() const;
 
 
 protected:
 protected:
-  cmGlobalVisualStudio10Generator(cmake* cm, const std::string& name,
-                                  std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio10Generator(cmake* cm, const std::string& name);
 
 
   void Generate() override;
   void Generate() override;
   virtual bool InitializeSystem(cmMakefile* mf);
   virtual bool InitializeSystem(cmMakefile* mf);

+ 2 - 3
Source/cmGlobalVisualStudio11Generator.cxx

@@ -16,9 +16,8 @@
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
 cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
 cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
-  cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio10Generator(cm, name, platformInGeneratorName)
+  cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio10Generator(cm, name)
 {
 {
 }
 }
 
 

+ 1 - 2
Source/cmGlobalVisualStudio11Generator.h

@@ -31,8 +31,7 @@ public:
   }
   }
 
 
 protected:
 protected:
-  cmGlobalVisualStudio11Generator(cmake* cm, const std::string& name,
-                                  std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio11Generator(cmake* cm, const std::string& name);
 
 
   bool InitializeWindowsPhone(cmMakefile* mf) override;
   bool InitializeWindowsPhone(cmMakefile* mf) override;
   bool InitializeWindowsStore(cmMakefile* mf) override;
   bool InitializeWindowsStore(cmMakefile* mf) override;

+ 2 - 3
Source/cmGlobalVisualStudio12Generator.cxx

@@ -16,9 +16,8 @@
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
 cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
 cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
-  cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio11Generator(cm, name, platformInGeneratorName)
+  cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio11Generator(cm, name)
 {
 {
 }
 }
 
 

+ 1 - 2
Source/cmGlobalVisualStudio12Generator.h

@@ -16,8 +16,7 @@ class cmake;
 class cmGlobalVisualStudio12Generator : public cmGlobalVisualStudio11Generator
 class cmGlobalVisualStudio12Generator : public cmGlobalVisualStudio11Generator
 {
 {
 protected:
 protected:
-  cmGlobalVisualStudio12Generator(cmake* cm, const std::string& name,
-                                  std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio12Generator(cmake* cm, const std::string& name);
 
 
   bool ProcessGeneratorToolsetField(std::string const& key,
   bool ProcessGeneratorToolsetField(std::string const& key,
                                     std::string const& value) override;
                                     std::string const& value) override;

+ 4 - 24
Source/cmGlobalVisualStudio14Generator.cxx

@@ -40,7 +40,7 @@ class cmGlobalVisualStudio14Generator::Factory
 {
 {
 public:
 public:
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool allowArch, cmake* cm) const override
+    const std::string& name, cmake* cm) const override
   {
   {
     std::string genName;
     std::string genName;
     const char* p = cmVS14GenName(name, genName);
     const char* p = cmVS14GenName(name, genName);
@@ -49,18 +49,7 @@ public:
     }
     }
     if (!*p) {
     if (!*p) {
       return std::unique_ptr<cmGlobalGenerator>(
       return std::unique_ptr<cmGlobalGenerator>(
-        new cmGlobalVisualStudio14Generator(cm, genName, ""));
-    }
-    if (!allowArch || *p++ != ' ') {
-      return std::unique_ptr<cmGlobalGenerator>();
-    }
-    if (strcmp(p, "Win64") == 0) {
-      return std::unique_ptr<cmGlobalGenerator>(
-        new cmGlobalVisualStudio14Generator(cm, genName, "x64"));
-    }
-    if (strcmp(p, "ARM") == 0) {
-      return std::unique_ptr<cmGlobalGenerator>(
-        new cmGlobalVisualStudio14Generator(cm, genName, "ARM"));
+        new cmGlobalVisualStudio14Generator(cm, genName));
     }
     }
     return std::unique_ptr<cmGlobalGenerator>();
     return std::unique_ptr<cmGlobalGenerator>();
   }
   }
@@ -79,14 +68,6 @@ public:
     return names;
     return names;
   }
   }
 
 
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    std::vector<std::string> names;
-    names.emplace_back(cmStrCat(vs14generatorName, " ARM"));
-    names.emplace_back(cmStrCat(vs14generatorName, " Win64"));
-    return names;
-  }
-
   bool SupportsToolset() const override { return true; }
   bool SupportsToolset() const override { return true; }
   bool SupportsPlatform() const override { return true; }
   bool SupportsPlatform() const override { return true; }
 
 
@@ -109,9 +90,8 @@ cmGlobalVisualStudio14Generator::NewFactory()
 }
 }
 
 
 cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator(
 cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator(
-  cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio12Generator(cm, name, platformInGeneratorName)
+  cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio12Generator(cm, name)
 {
 {
   std::string vc14Express;
   std::string vc14Express;
   this->ExpressEdition = cmSystemTools::ReadRegistryValue(
   this->ExpressEdition = cmSystemTools::ReadRegistryValue(

+ 1 - 2
Source/cmGlobalVisualStudio14Generator.h

@@ -29,8 +29,7 @@ public:
   }
   }
 
 
 protected:
 protected:
-  cmGlobalVisualStudio14Generator(cmake* cm, const std::string& name,
-                                  std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio14Generator(cmake* cm, const std::string& name);
 
 
   bool InitializeWindowsStore(cmMakefile* mf) override;
   bool InitializeWindowsStore(cmMakefile* mf) override;
   bool InitializeAndroid(cmMakefile* mf) override;
   bool InitializeAndroid(cmMakefile* mf) override;

+ 2 - 3
Source/cmGlobalVisualStudio71Generator.cxx

@@ -17,9 +17,8 @@
 
 
 class cmake;
 class cmake;
 
 
-cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator(
-  cmake* cm, const std::string& platformName)
-  : cmGlobalVisualStudio7Generator(cm, platformName)
+cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator(cmake* cm)
+  : cmGlobalVisualStudio7Generator(cm)
 {
 {
   this->ProjectConfigurationSectionName = "ProjectConfiguration";
   this->ProjectConfigurationSectionName = "ProjectConfiguration";
 }
 }

+ 1 - 2
Source/cmGlobalVisualStudio71Generator.h

@@ -25,8 +25,7 @@ class BT;
 class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator
 class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator
 {
 {
 public:
 public:
-  cmGlobalVisualStudio71Generator(cmake* cm,
-                                  const std::string& platformName = "");
+  cmGlobalVisualStudio71Generator(cmake* cm);
 
 
 protected:
 protected:
   void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
   void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,

+ 2 - 3
Source/cmGlobalVisualStudio7Generator.cxx

@@ -66,9 +66,8 @@ std::string GetSLNFile(cmLocalGenerator* root)
 }
 }
 }
 }
 
 
-cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
-  cmake* cm, std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudioGenerator(cm, platformInGeneratorName)
+cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(cmake* cm)
+  : cmGlobalVisualStudioGenerator(cm)
 {
 {
   this->DevEnvCommandInitialized = false;
   this->DevEnvCommandInitialized = false;
   this->MarmasmEnabled = false;
   this->MarmasmEnabled = false;

+ 1 - 2
Source/cmGlobalVisualStudio7Generator.h

@@ -130,8 +130,7 @@ public:
   virtual bool SupportsCxxModuleDyndep() const { return false; }
   virtual bool SupportsCxxModuleDyndep() const { return false; }
 
 
 protected:
 protected:
-  cmGlobalVisualStudio7Generator(cmake* cm,
-                                 std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio7Generator(cmake* cm);
 
 
   void Generate() override;
   void Generate() override;
 
 

+ 2 - 10
Source/cmGlobalVisualStudio8Generator.cxx

@@ -39,9 +39,8 @@
 struct cmIDEFlagTable;
 struct cmIDEFlagTable;
 
 
 cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
 cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
-  cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio71Generator(cm, platformInGeneratorName)
+  cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio71Generator(cm)
 {
 {
   this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
   this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
   this->Name = name;
   this->Name = name;
@@ -88,13 +87,6 @@ void cmGlobalVisualStudio8Generator::AddPlatformDefinitions(cmMakefile* mf)
 bool cmGlobalVisualStudio8Generator::SetGeneratorPlatform(std::string const& p,
 bool cmGlobalVisualStudio8Generator::SetGeneratorPlatform(std::string const& p,
                                                           cmMakefile* mf)
                                                           cmMakefile* mf)
 {
 {
-  if (this->PlatformInGeneratorName) {
-    // This is an old-style generator name that contains the platform name.
-    // No explicit platform specification is supported, so pass it through
-    // to our base class implementation, which errors on non-empty platforms.
-    return this->cmGlobalVisualStudio7Generator::SetGeneratorPlatform(p, mf);
-  }
-
   if (!this->ParseGeneratorPlatform(p, mf)) {
   if (!this->ParseGeneratorPlatform(p, mf)) {
     return false;
     return false;
   }
   }

+ 1 - 2
Source/cmGlobalVisualStudio8Generator.h

@@ -51,8 +51,7 @@ public:
   }
   }
 
 
 protected:
 protected:
-  cmGlobalVisualStudio8Generator(cmake* cm, const std::string& name,
-                                 std::string const& platformInGeneratorName);
+  cmGlobalVisualStudio8Generator(cmake* cm, const std::string& name);
 
 
   virtual bool ProcessGeneratorPlatformField(std::string const& key,
   virtual bool ProcessGeneratorPlatformField(std::string const& key,
                                              std::string const& value);
                                              std::string const& value);

+ 2 - 9
Source/cmGlobalVisualStudioGenerator.cxx

@@ -36,20 +36,13 @@
 #include "cmTarget.h"
 #include "cmTarget.h"
 #include "cmake.h"
 #include "cmake.h"
 
 
-cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator(
-  cmake* cm, std::string const& platformInGeneratorName)
+cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator(cmake* cm)
   : cmGlobalGenerator(cm)
   : cmGlobalGenerator(cm)
 {
 {
   cm->GetState()->SetIsGeneratorMultiConfig(true);
   cm->GetState()->SetIsGeneratorMultiConfig(true);
   cm->GetState()->SetWindowsShell(true);
   cm->GetState()->SetWindowsShell(true);
   cm->GetState()->SetWindowsVSIDE(true);
   cm->GetState()->SetWindowsVSIDE(true);
-
-  if (platformInGeneratorName.empty()) {
-    this->DefaultPlatformName = "Win32";
-  } else {
-    this->DefaultPlatformName = platformInGeneratorName;
-    this->PlatformInGeneratorName = true;
-  }
+  this->DefaultPlatformName = "Win32";
 }
 }
 
 
 cmGlobalVisualStudioGenerator::~cmGlobalVisualStudioGenerator() = default;
 cmGlobalVisualStudioGenerator::~cmGlobalVisualStudioGenerator() = default;

+ 1 - 3
Source/cmGlobalVisualStudioGenerator.h

@@ -159,8 +159,7 @@ public:
   bool IsVisualStudio() const override { return true; }
   bool IsVisualStudio() const override { return true; }
 
 
 protected:
 protected:
-  cmGlobalVisualStudioGenerator(cmake* cm,
-                                std::string const& platformInGeneratorName);
+  cmGlobalVisualStudioGenerator(cmake* cm);
 
 
   virtual bool InitializePlatform(cmMakefile* mf);
   virtual bool InitializePlatform(cmMakefile* mf);
 
 
@@ -195,7 +194,6 @@ protected:
 
 
   std::string GeneratorPlatform;
   std::string GeneratorPlatform;
   std::string DefaultPlatformName;
   std::string DefaultPlatformName;
-  bool PlatformInGeneratorName = false;
 
 
 private:
 private:
   virtual std::string GetVSMakeProgram() = 0;
   virtual std::string GetVSMakeProgram() = 0;

+ 8 - 40
Source/cmGlobalVisualStudioVersionedGenerator.cxx

@@ -205,7 +205,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory15
 {
 {
 public:
 public:
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool allowArch, cmake* cm) const override
+    const std::string& name, cmake* cm) const override
   {
   {
     std::string genName;
     std::string genName;
     const char* p = cmVS15GenName(name, genName);
     const char* p = cmVS15GenName(name, genName);
@@ -215,20 +215,7 @@ public:
     if (!*p) {
     if (!*p) {
       return std::unique_ptr<cmGlobalGenerator>(
       return std::unique_ptr<cmGlobalGenerator>(
         new cmGlobalVisualStudioVersionedGenerator(
         new cmGlobalVisualStudioVersionedGenerator(
-          cmGlobalVisualStudioGenerator::VSVersion::VS15, cm, genName, ""));
-    }
-    if (!allowArch || *p++ != ' ') {
-      return std::unique_ptr<cmGlobalGenerator>();
-    }
-    if (strcmp(p, "Win64") == 0) {
-      return std::unique_ptr<cmGlobalGenerator>(
-        new cmGlobalVisualStudioVersionedGenerator(
-          cmGlobalVisualStudioGenerator::VSVersion::VS15, cm, genName, "x64"));
-    }
-    if (strcmp(p, "ARM") == 0) {
-      return std::unique_ptr<cmGlobalGenerator>(
-        new cmGlobalVisualStudioVersionedGenerator(
-          cmGlobalVisualStudioGenerator::VSVersion::VS15, cm, genName, "ARM"));
+          cmGlobalVisualStudioGenerator::VSVersion::VS15, cm, genName));
     }
     }
     return std::unique_ptr<cmGlobalGenerator>();
     return std::unique_ptr<cmGlobalGenerator>();
   }
   }
@@ -247,14 +234,6 @@ public:
     return names;
     return names;
   }
   }
 
 
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    std::vector<std::string> names;
-    names.emplace_back(cmStrCat(vs15generatorName, " ARM"));
-    names.emplace_back(cmStrCat(vs15generatorName, " Win64"));
-    return names;
-  }
-
   bool SupportsToolset() const override { return true; }
   bool SupportsToolset() const override { return true; }
   bool SupportsPlatform() const override { return true; }
   bool SupportsPlatform() const override { return true; }
 
 
@@ -314,7 +293,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory16
 {
 {
 public:
 public:
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool /*allowArch*/, cmake* cm) const override
+    const std::string& name, cmake* cm) const override
   {
   {
     std::string genName;
     std::string genName;
     const char* p = cmVS16GenName(name, genName);
     const char* p = cmVS16GenName(name, genName);
@@ -324,7 +303,7 @@ public:
     if (!*p) {
     if (!*p) {
       return std::unique_ptr<cmGlobalGenerator>(
       return std::unique_ptr<cmGlobalGenerator>(
         new cmGlobalVisualStudioVersionedGenerator(
         new cmGlobalVisualStudioVersionedGenerator(
-          cmGlobalVisualStudioGenerator::VSVersion::VS16, cm, genName, ""));
+          cmGlobalVisualStudioGenerator::VSVersion::VS16, cm, genName));
     }
     }
     return std::unique_ptr<cmGlobalGenerator>();
     return std::unique_ptr<cmGlobalGenerator>();
   }
   }
@@ -343,11 +322,6 @@ public:
     return names;
     return names;
   }
   }
 
 
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    return std::vector<std::string>();
-  }
-
   bool SupportsToolset() const override { return true; }
   bool SupportsToolset() const override { return true; }
   bool SupportsPlatform() const override { return true; }
   bool SupportsPlatform() const override { return true; }
 
 
@@ -379,7 +353,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory17
 {
 {
 public:
 public:
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool /*allowArch*/, cmake* cm) const override
+    const std::string& name, cmake* cm) const override
   {
   {
     std::string genName;
     std::string genName;
     const char* p = cmVS17GenName(name, genName);
     const char* p = cmVS17GenName(name, genName);
@@ -389,7 +363,7 @@ public:
     if (!*p) {
     if (!*p) {
       return std::unique_ptr<cmGlobalGenerator>(
       return std::unique_ptr<cmGlobalGenerator>(
         new cmGlobalVisualStudioVersionedGenerator(
         new cmGlobalVisualStudioVersionedGenerator(
-          cmGlobalVisualStudioGenerator::VSVersion::VS17, cm, genName, ""));
+          cmGlobalVisualStudioGenerator::VSVersion::VS17, cm, genName));
     }
     }
     return std::unique_ptr<cmGlobalGenerator>();
     return std::unique_ptr<cmGlobalGenerator>();
   }
   }
@@ -408,11 +382,6 @@ public:
     return names;
     return names;
   }
   }
 
 
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    return std::vector<std::string>();
-  }
-
   bool SupportsToolset() const override { return true; }
   bool SupportsToolset() const override { return true; }
   bool SupportsPlatform() const override { return true; }
   bool SupportsPlatform() const override { return true; }
 
 
@@ -440,9 +409,8 @@ cmGlobalVisualStudioVersionedGenerator::NewFactory17()
 }
 }
 
 
 cmGlobalVisualStudioVersionedGenerator::cmGlobalVisualStudioVersionedGenerator(
 cmGlobalVisualStudioVersionedGenerator::cmGlobalVisualStudioVersionedGenerator(
-  VSVersion version, cmake* cm, const std::string& name,
-  std::string const& platformInGeneratorName)
-  : cmGlobalVisualStudio14Generator(cm, name, platformInGeneratorName)
+  VSVersion version, cmake* cm, const std::string& name)
+  : cmGlobalVisualStudio14Generator(cm, name)
   , vsSetupAPIHelper(VSVersionToMajor(version))
   , vsSetupAPIHelper(VSVersionToMajor(version))
 {
 {
   this->Version = version;
   this->Version = version;

+ 2 - 3
Source/cmGlobalVisualStudioVersionedGenerator.h

@@ -58,9 +58,8 @@ public:
   }
   }
 
 
 protected:
 protected:
-  cmGlobalVisualStudioVersionedGenerator(
-    VSVersion version, cmake* cm, const std::string& name,
-    std::string const& platformInGeneratorName);
+  cmGlobalVisualStudioVersionedGenerator(VSVersion version, cmake* cm,
+                                         const std::string& name);
 
 
   bool SelectWindowsStoreToolset(std::string& toolset) const override;
   bool SelectWindowsStoreToolset(std::string& toolset) const override;
 
 

+ 1 - 7
Source/cmGlobalXCodeGenerator.cxx

@@ -148,7 +148,7 @@ class cmGlobalXCodeGenerator::Factory : public cmGlobalGeneratorFactory
 {
 {
 public:
 public:
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool allowArch, cmake* cm) const override;
+    const std::string& name, cmake* cm) const override;
 
 
   cmDocumentationEntry GetDocumentation() const override
   cmDocumentationEntry GetDocumentation() const override
   {
   {
@@ -162,11 +162,6 @@ public:
     return names;
     return names;
   }
   }
 
 
-  std::vector<std::string> GetGeneratorNamesWithPlatform() const override
-  {
-    return std::vector<std::string>();
-  }
-
   bool SupportsToolset() const override { return true; }
   bool SupportsToolset() const override { return true; }
   bool SupportsPlatform() const override { return false; }
   bool SupportsPlatform() const override { return false; }
 
 
@@ -210,7 +205,6 @@ std::unique_ptr<cmGlobalGeneratorFactory> cmGlobalXCodeGenerator::NewFactory()
 
 
 std::unique_ptr<cmGlobalGenerator>
 std::unique_ptr<cmGlobalGenerator>
 cmGlobalXCodeGenerator::Factory::CreateGlobalGenerator(const std::string& name,
 cmGlobalXCodeGenerator::Factory::CreateGlobalGenerator(const std::string& name,
-                                                       bool /*allowArch*/,
                                                        cmake* cm) const
                                                        cmake* cm) const
 {
 {
   if (name != GetActualName()) {
   if (name != GetActualName()) {

+ 9 - 167
Source/cmMakefile.cxx

@@ -29,7 +29,6 @@
 #include "cmsys/FStream.hxx"
 #include "cmsys/FStream.hxx"
 #include "cmsys/RegularExpression.hxx"
 #include "cmsys/RegularExpression.hxx"
 
 
-#include "cmCommandArgumentParserHelper.h"
 #include "cmCustomCommand.h"
 #include "cmCustomCommand.h"
 #include "cmCustomCommandLines.h"
 #include "cmCustomCommandLines.h"
 #include "cmCustomCommandTypes.h"
 #include "cmCustomCommandTypes.h"
@@ -108,8 +107,6 @@ cmMakefile::cmMakefile(cmGlobalGenerator* globalGenerator,
 
 
   this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars();
   this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars();
 
 
-  this->SuppressSideEffects = false;
-
   // Setup the default include complaint regular expression (match nothing).
   // Setup the default include complaint regular expression (match nothing).
   this->ComplainFileRegularExpression = "^$";
   this->ComplainFileRegularExpression = "^$";
 
 
@@ -117,7 +114,6 @@ cmMakefile::cmMakefile(cmGlobalGenerator* globalGenerator,
 
 
   this->cmDefineRegex.compile("#([ \t]*)cmakedefine[ \t]+([A-Za-z_0-9]*)");
   this->cmDefineRegex.compile("#([ \t]*)cmakedefine[ \t]+([A-Za-z_0-9]*)");
   this->cmDefine01Regex.compile("#([ \t]*)cmakedefine01[ \t]+([A-Za-z_0-9]*)");
   this->cmDefine01Regex.compile("#([ \t]*)cmakedefine01[ \t]+([A-Za-z_0-9]*)");
-  this->cmAtVarRegex.compile("(@[A-Za-z_0-9/.+-]+@)");
   this->cmNamedCurly.compile("^[A-Za-z0-9/_.+-]+{");
   this->cmNamedCurly.compile("^[A-Za-z0-9/_.+-]+{");
 
 
   this->StateSnapshot =
   this->StateSnapshot =
@@ -1604,7 +1600,7 @@ void cmMakefile::Configure()
         this->SetCheckCMP0000(true);
         this->SetCheckCMP0000(true);
 
 
         // Implicitly set the version for the user.
         // Implicitly set the version for the user.
-        cmPolicies::ApplyPolicyVersion(this, 3, 0, 0,
+        cmPolicies::ApplyPolicyVersion(this, 3, 1, 0,
                                        cmPolicies::WarnCompat::Off);
                                        cmPolicies::WarnCompat::Off);
       }
       }
     }
     }
@@ -2354,7 +2350,7 @@ cmValue cmMakefile::GetDefinition(const std::string& name) const
   }
   }
 #ifndef CMAKE_BOOTSTRAP
 #ifndef CMAKE_BOOTSTRAP
   cmVariableWatch* vv = this->GetVariableWatch();
   cmVariableWatch* vv = this->GetVariableWatch();
-  if (vv && !this->SuppressSideEffects) {
+  if (vv) {
     bool const watch_function_executed =
     bool const watch_function_executed =
       vv->VariableAccessed(name,
       vv->VariableAccessed(name,
                            def ? cmVariableWatch::VARIABLE_READ_ACCESS
                            def ? cmVariableWatch::VARIABLE_READ_ACCESS
@@ -2398,11 +2394,6 @@ const std::string& cmMakefile::ExpandVariablesInString(
   std::string& source, bool escapeQuotes, bool noEscapes, bool atOnly,
   std::string& source, bool escapeQuotes, bool noEscapes, bool atOnly,
   const char* filename, long line, bool removeEmpty, bool replaceAt) const
   const char* filename, long line, bool removeEmpty, bool replaceAt) const
 {
 {
-  bool compareResults = false;
-  MessageType mtype = MessageType::LOG;
-  std::string errorstr;
-  std::string original;
-
   // Sanity check the @ONLY mode.
   // Sanity check the @ONLY mode.
   if (atOnly && (!noEscapes || !removeEmpty)) {
   if (atOnly && (!noEscapes || !removeEmpty)) {
     // This case should never be called.  At-only is for
     // This case should never be called.  At-only is for
@@ -2413,163 +2404,20 @@ const std::string& cmMakefile::ExpandVariablesInString(
     return source;
     return source;
   }
   }
 
 
-  // Variables used in the WARN case.
-  std::string newResult;
-  std::string newErrorstr;
-  MessageType newError = MessageType::LOG;
-
-  switch (this->GetPolicyStatus(cmPolicies::CMP0053)) {
-    case cmPolicies::WARN: {
-      // Save the original string for the warning.
-      original = source;
-      newResult = source;
-      compareResults = true;
-      // Suppress variable watches to avoid calling hooks twice. Suppress new
-      // dereferences since the OLD behavior is still what is actually used.
-      this->SuppressSideEffects = true;
-      newError = this->ExpandVariablesInStringNew(
-        newErrorstr, newResult, escapeQuotes, noEscapes, atOnly, filename,
-        line, replaceAt);
-      this->SuppressSideEffects = false;
-      CM_FALLTHROUGH;
-    }
-    case cmPolicies::OLD:
-      mtype = this->ExpandVariablesInStringOld(errorstr, source, escapeQuotes,
-                                               noEscapes, atOnly, filename,
-                                               line, removeEmpty, true);
-      break;
-    // Messaging here would be *very* verbose.
-    case cmPolicies::NEW:
-      mtype = this->ExpandVariablesInStringNew(errorstr, source, escapeQuotes,
-                                               noEscapes, atOnly, filename,
-                                               line, replaceAt);
-      break;
-  }
-
-  // If it's an error in either case, just report the error...
+  std::string errorstr;
+  MessageType mtype = this->ExpandVariablesInStringImpl(
+    errorstr, source, escapeQuotes, noEscapes, atOnly, filename, line,
+    replaceAt);
   if (mtype != MessageType::LOG) {
   if (mtype != MessageType::LOG) {
     if (mtype == MessageType::FATAL_ERROR) {
     if (mtype == MessageType::FATAL_ERROR) {
       cmSystemTools::SetFatalErrorOccurred();
       cmSystemTools::SetFatalErrorOccurred();
     }
     }
     this->IssueMessage(mtype, errorstr);
     this->IssueMessage(mtype, errorstr);
   }
   }
-  // ...otherwise, see if there's a difference that needs to be warned about.
-  else if (compareResults && (newResult != source || newError != mtype)) {
-    auto msg =
-      cmStrCat(cmPolicies::GetPolicyWarning(cmPolicies::CMP0053), '\n');
-
-    std::string msg_input = original;
-    cmSystemTools::ReplaceString(msg_input, "\n", "\n  ");
-
-    std::string msg_old = source;
-    cmSystemTools::ReplaceString(msg_old, "\n", "\n  ");
-
-    msg += cmStrCat("For input:\n  '", msg_input, "'\n",
-                    "the old evaluation rules produce:\n  '", msg_old, "'\n");
-
-    if (newError == mtype) {
-      std::string msg_new = newResult;
-      cmSystemTools::ReplaceString(msg_new, "\n", "\n  ");
-      msg +=
-        cmStrCat("but the new evaluation rules produce:\n  '", msg_new, "'\n");
-    } else {
-      std::string msg_err = newErrorstr;
-      cmSystemTools::ReplaceString(msg_err, "\n", "\n  ");
-      msg += cmStrCat("but the new evaluation rules produce an error:\n  ",
-                      msg_err, '\n');
-    }
-
-    msg +=
-      "Using the old result for compatibility since the policy is not set.";
-
-    this->IssueMessage(MessageType::AUTHOR_WARNING, msg);
-  }
 
 
   return source;
   return source;
 }
 }
 
 
-MessageType cmMakefile::ExpandVariablesInStringOld(
-  std::string& errorstr, std::string& source, bool escapeQuotes,
-  bool noEscapes, bool atOnly, const char* filename, long line,
-  bool removeEmpty, bool replaceAt) const
-{
-  // Fast path strings without any special characters.
-  if (source.find_first_of("$@\\") == std::string::npos) {
-    return MessageType::LOG;
-  }
-
-  // Special-case the @ONLY mode.
-  if (atOnly) {
-    // Store an original copy of the input.
-    std::string input = source;
-
-    // Start with empty output.
-    source.clear();
-
-    // Look for one @VAR@ at a time.
-    const char* in = input.c_str();
-    while (this->cmAtVarRegex.find(in)) {
-      // Get the range of the string to replace.
-      const char* first = in + this->cmAtVarRegex.start();
-      const char* last = in + this->cmAtVarRegex.end();
-
-      // Store the unchanged part of the string now.
-      source.append(in, first - in);
-
-      // Lookup the definition of VAR.
-      std::string var(first + 1, last - first - 2);
-      if (cmValue val = this->GetDefinition(var)) {
-        // Store the value in the output escaping as requested.
-        if (escapeQuotes) {
-          source.append(cmEscapeQuotes(*val));
-        } else {
-          source.append(*val);
-        }
-      }
-
-      // Continue looking for @VAR@ further along the string.
-      in = last;
-    }
-
-    // Append the rest of the unchanged part of the string.
-    source.append(in);
-
-    return MessageType::LOG;
-  }
-
-  // This method replaces ${VAR} and @VAR@ where VAR is looked up
-  // with GetDefinition(), if not found in the map, nothing is expanded.
-  // It also supports the $ENV{VAR} syntax where VAR is looked up in
-  // the current environment variables.
-
-  cmCommandArgumentParserHelper parser;
-  parser.SetMakefile(this);
-  parser.SetLineFile(line, filename);
-  parser.SetEscapeQuotes(escapeQuotes);
-  parser.SetNoEscapeMode(noEscapes);
-  parser.SetReplaceAtSyntax(replaceAt);
-  parser.SetRemoveEmpty(removeEmpty);
-  int res = parser.ParseString(source, 0);
-  const char* emsg = parser.GetError();
-  MessageType mtype = MessageType::LOG;
-  if (res && !emsg[0]) {
-    source = parser.GetResult();
-  } else {
-    // Construct the main error message.
-    std::string error = "Syntax error in cmake code ";
-    if (filename && line > 0) {
-      // This filename and line number may be more specific than the
-      // command context because one command invocation can have
-      // arguments on multiple lines.
-      error += cmStrCat("at\n  ", filename, ':', line, '\n');
-    }
-    error += cmStrCat("when parsing string\n  ", source, '\n', emsg);
-    mtype = MessageType::FATAL_ERROR;
-    errorstr = std::move(error);
-  }
-  return mtype;
-}
-
 enum t_domain
 enum t_domain
 {
 {
   NORMAL,
   NORMAL,
@@ -2680,7 +2528,7 @@ cm::optional<std::string> cmMakefile::DeferGetCall(std::string const& id) const
   return call;
   return call;
 }
 }
 
 
-MessageType cmMakefile::ExpandVariablesInStringNew(
+MessageType cmMakefile::ExpandVariablesInStringImpl(
   std::string& errorstr, std::string& source, bool escapeQuotes,
   std::string& errorstr, std::string& source, bool escapeQuotes,
   bool noEscapes, bool atOnly, const char* filename, long line,
   bool noEscapes, bool atOnly, const char* filename, long line,
   bool replaceAt) const
   bool replaceAt) const
@@ -2743,7 +2591,7 @@ MessageType cmMakefile::ExpandVariablesInStringNew(
             } else {
             } else {
               varresult = *value;
               varresult = *value;
             }
             }
-          } else if (!this->SuppressSideEffects) {
+          } else {
             this->MaybeWarnUninitialized(lookup, filename);
             this->MaybeWarnUninitialized(lookup, filename);
           }
           }
           result.replace(var.loc, result.size() - var.loc, varresult);
           result.replace(var.loc, result.size() - var.loc, varresult);
@@ -2859,7 +2707,7 @@ MessageType cmMakefile::ExpandVariablesInStringNew(
               cmValue def = this->GetDefinition(variable);
               cmValue def = this->GetDefinition(variable);
               if (def) {
               if (def) {
                 varresult = *def;
                 varresult = *def;
-              } else if (!this->SuppressSideEffects) {
+              } else {
                 this->MaybeWarnUninitialized(variable, filename);
                 this->MaybeWarnUninitialized(variable, filename);
               }
               }
             }
             }
@@ -4255,12 +4103,6 @@ cmMakefile::VariablePushPop::~VariablePushPop()
   this->Makefile->PopSnapshot();
   this->Makefile->PopSnapshot();
 }
 }
 
 
-bool cmMakefile::HasCMP0054AlreadyBeenReported(
-  cmListFileContext const& context) const
-{
-  return !this->CMP0054ReportedIds.insert(context).second;
-}
-
 void cmMakefile::RecordPolicies(cmPolicies::PolicyMap& pm) const
 void cmMakefile::RecordPolicies(cmPolicies::PolicyMap& pm) const
 {
 {
   /* Record the setting of every policy.  */
   /* Record the setting of every policy.  */

+ 5 - 23
Source/cmMakefile.h

@@ -417,12 +417,6 @@ public:
     cmMakefile* Makefile;
     cmMakefile* Makefile;
   };
   };
 
 
-  /**
-   * Determine if the given context, name pair has already been reported
-   * in context of CMP0054.
-   */
-  bool HasCMP0054AlreadyBeenReported(const cmListFileContext& context) const;
-
   bool IgnoreErrorsCMP0061() const;
   bool IgnoreErrorsCMP0061() const;
 
 
   std::string const& GetHomeDirectory() const;
   std::string const& GetHomeDirectory() const;
@@ -1103,8 +1097,6 @@ protected:
   // add link libraries and directories to the target
   // add link libraries and directories to the target
   void AddGlobalLinkInformation(cmTarget& target);
   void AddGlobalLinkInformation(cmTarget& target);
 
 
-  mutable std::set<cmListFileContext> CMP0054ReportedIds;
-
   // libraries, classes, and executables
   // libraries, classes, and executables
   mutable cmTargetMap Targets;
   mutable cmTargetMap Targets;
   std::map<std::string, std::string> AliasTargets;
   std::map<std::string, std::string> AliasTargets;
@@ -1197,7 +1189,6 @@ private:
 
 
   mutable cmsys::RegularExpression cmDefineRegex;
   mutable cmsys::RegularExpression cmDefineRegex;
   mutable cmsys::RegularExpression cmDefine01Regex;
   mutable cmsys::RegularExpression cmDefine01Regex;
-  mutable cmsys::RegularExpression cmAtVarRegex;
   mutable cmsys::RegularExpression cmNamedCurly;
   mutable cmsys::RegularExpression cmNamedCurly;
 
 
   std::vector<cmMakefile*> UnConfiguredDirectories;
   std::vector<cmMakefile*> UnConfiguredDirectories;
@@ -1239,19 +1230,11 @@ private:
   class BuildsystemFileScope;
   class BuildsystemFileScope;
   friend class BuildsystemFileScope;
   friend class BuildsystemFileScope;
 
 
-  // CMP0053 == old
-  MessageType ExpandVariablesInStringOld(std::string& errorstr,
-                                         std::string& source,
-                                         bool escapeQuotes, bool noEscapes,
-                                         bool atOnly, const char* filename,
-                                         long line, bool removeEmpty,
-                                         bool replaceAt) const;
-  // CMP0053 == new
-  MessageType ExpandVariablesInStringNew(std::string& errorstr,
-                                         std::string& source,
-                                         bool escapeQuotes, bool noEscapes,
-                                         bool atOnly, const char* filename,
-                                         long line, bool replaceAt) const;
+  MessageType ExpandVariablesInStringImpl(std::string& errorstr,
+                                          std::string& source,
+                                          bool escapeQuotes, bool noEscapes,
+                                          bool atOnly, const char* filename,
+                                          long line, bool replaceAt) const;
 
 
   bool ValidateCustomCommand(const cmCustomCommandLines& commandLines) const;
   bool ValidateCustomCommand(const cmCustomCommandLines& commandLines) const;
 
 
@@ -1270,6 +1253,5 @@ private:
   std::set<std::string> WarnedCMP0074;
   std::set<std::string> WarnedCMP0074;
   std::set<std::string> WarnedCMP0144;
   std::set<std::string> WarnedCMP0144;
   bool IsSourceFileTryCompile;
   bool IsSourceFileTryCompile;
-  mutable bool SuppressSideEffects;
   ImportedTargetScope CurrentImportedTargetScope = ImportedTargetScope::Local;
   ImportedTargetScope CurrentImportedTargetScope = ImportedTargetScope::Local;
 };
 };

+ 3 - 3
Source/cmPolicies.cxx

@@ -295,16 +295,16 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, unsigned int majorVer,
                                     WarnCompat warnCompat)
                                     WarnCompat warnCompat)
 {
 {
   // Error on policy versions for which support has been removed.
   // Error on policy versions for which support has been removed.
-  if (majorVer < 3) {
+  if (majorVer < 3 || (majorVer == 3 && minorVer < 1)) {
     if (IsFromLegacyInstallEXPORT(mf, majorVer, minorVer, patchVer)) {
     if (IsFromLegacyInstallEXPORT(mf, majorVer, minorVer, patchVer)) {
       // Silently tolerate cmake_policy calls generated by install(EXPORT)
       // Silently tolerate cmake_policy calls generated by install(EXPORT)
       // in CMake versions prior to 3.18.
       // in CMake versions prior to 3.18.
       majorVer = 3;
       majorVer = 3;
-      minorVer = 0;
+      minorVer = 1;
       patchVer = 0;
       patchVer = 0;
     } else {
     } else {
       mf->IssueMessage(MessageType::FATAL_ERROR,
       mf->IssueMessage(MessageType::FATAL_ERROR,
-                       "Compatibility with CMake < 3.0 has been removed "
+                       "Compatibility with CMake < 3.1 has been removed "
                        "from CMake.\n" ADVICE_UPDATE_VERSION_ARGUMENT);
                        "from CMake.\n" ADVICE_UPDATE_VERSION_ARGUMENT);
       cmSystemTools::SetFatalErrorOccurred();
       cmSystemTools::SetFatalErrorOccurred();
       return false;
       return false;

+ 4 - 4
Source/cmPolicies.h

@@ -151,18 +151,18 @@ class cmMakefile;
   SELECT(POLICY, CMP0050, "Disallow add_custom_command SOURCE signatures.",   \
   SELECT(POLICY, CMP0050, "Disallow add_custom_command SOURCE signatures.",   \
          3, 0, 0, NEW)                                                        \
          3, 0, 0, NEW)                                                        \
   SELECT(POLICY, CMP0051, "List TARGET_OBJECTS in SOURCES target property.",  \
   SELECT(POLICY, CMP0051, "List TARGET_OBJECTS in SOURCES target property.",  \
-         3, 1, 0, WARN)                                                       \
+         3, 1, 0, NEW)                                                        \
   SELECT(POLICY, CMP0052,                                                     \
   SELECT(POLICY, CMP0052,                                                     \
          "Reject source and build dirs in installed "                         \
          "Reject source and build dirs in installed "                         \
          "INTERFACE_INCLUDE_DIRECTORIES.",                                    \
          "INTERFACE_INCLUDE_DIRECTORIES.",                                    \
-         3, 1, 0, WARN)                                                       \
+         3, 1, 0, NEW)                                                        \
   SELECT(POLICY, CMP0053,                                                     \
   SELECT(POLICY, CMP0053,                                                     \
          "Simplify variable reference and escape sequence evaluation.", 3, 1, \
          "Simplify variable reference and escape sequence evaluation.", 3, 1, \
-         0, WARN)                                                             \
+         0, NEW)                                                              \
   SELECT(                                                                     \
   SELECT(                                                                     \
     POLICY, CMP0054,                                                          \
     POLICY, CMP0054,                                                          \
     "Only interpret if() arguments as variables or keywords when unquoted.",  \
     "Only interpret if() arguments as variables or keywords when unquoted.",  \
-    3, 1, 0, WARN)                                                            \
+    3, 1, 0, NEW)                                                             \
   SELECT(POLICY, CMP0055, "Strict checking for break() command.", 3, 2, 0,    \
   SELECT(POLICY, CMP0055, "Strict checking for break() command.", 3, 2, 0,    \
          WARN)                                                                \
          WARN)                                                                \
   SELECT(POLICY, CMP0056,                                                     \
   SELECT(POLICY, CMP0056,                                                     \

+ 4 - 44
Source/cmTarget.cxx

@@ -55,8 +55,7 @@ const std::string& cmTargetPropertyComputer::ImportedLocation<cmTarget>(
 }
 }
 
 
 template <>
 template <>
-cmValue cmTargetPropertyComputer::GetSources<cmTarget>(cmTarget const* tgt,
-                                                       cmMakefile const& mf)
+cmValue cmTargetPropertyComputer::GetSources<cmTarget>(cmTarget const* tgt)
 {
 {
   cmBTStringRange entries = tgt->GetSourceEntries();
   cmBTStringRange entries = tgt->GetSourceEntries();
   if (entries.empty()) {
   if (entries.empty()) {
@@ -68,48 +67,9 @@ cmValue cmTargetPropertyComputer::GetSources<cmTarget>(cmTarget const* tgt,
   for (auto const& entry : entries) {
   for (auto const& entry : entries) {
     cmList files{ entry.Value };
     cmList files{ entry.Value };
     for (std::string const& file : files) {
     for (std::string const& file : files) {
-      if (cmHasLiteralPrefix(file, "$<TARGET_OBJECTS:") &&
-          file.back() == '>') {
-        std::string objLibName = file.substr(17, file.size() - 18);
-
-        if (cmGeneratorExpression::Find(objLibName) != std::string::npos) {
-          ss << sep;
-          sep = ";";
-          ss << file;
-          continue;
-        }
-
-        bool addContent = false;
-        bool noMessage = true;
-        std::ostringstream e;
-        MessageType messageType = MessageType::AUTHOR_WARNING;
-        switch (mf.GetPolicyStatus(cmPolicies::CMP0051)) {
-          case cmPolicies::WARN:
-            e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0051) << "\n";
-            noMessage = false;
-            CM_FALLTHROUGH;
-          case cmPolicies::OLD:
-            break;
-          case cmPolicies::NEW:
-            addContent = true;
-            break;
-        }
-        if (!noMessage) {
-          e << "Target \"" << tgt->GetName()
-            << "\" contains $<TARGET_OBJECTS> generator expression in its "
-               "sources list.  This content was not previously part of the "
-               "SOURCES property when that property was read at configure "
-               "time.  Code reading that property needs to be adapted to "
-               "ignore the generator expression using the string(GENEX_STRIP) "
-               "command.";
-          mf.IssueMessage(messageType, e.str());
-        }
-        if (addContent) {
-          ss << sep;
-          sep = ";";
-          ss << file;
-        }
-      } else if (cmGeneratorExpression::Find(file) == std::string::npos) {
+      if ((cmHasLiteralPrefix(file, "$<TARGET_OBJECTS:") &&
+           file.back() == '>') ||
+          cmGeneratorExpression::Find(file) == std::string::npos) {
         ss << sep;
         ss << sep;
         sep = ";";
         sep = ";";
         ss << file;
         ss << file;

+ 2 - 2
Source/cmTargetPropertyComputer.h

@@ -27,7 +27,7 @@ public:
       return nullptr;
       return nullptr;
     }
     }
     if (prop == "SOURCES") {
     if (prop == "SOURCES") {
-      return GetSources(tgt, mf);
+      return GetSources(tgt);
     }
     }
     return nullptr;
     return nullptr;
   }
   }
@@ -88,5 +88,5 @@ private:
   }
   }
 
 
   template <typename Target>
   template <typename Target>
-  static cmValue GetSources(Target const* tgt, cmMakefile const& mf);
+  static cmValue GetSources(Target const* tgt);
 };
 };

+ 10 - 16
Source/cmake.cxx

@@ -1380,7 +1380,7 @@ void cmake::SetArgs(const std::vector<std::string>& args)
     "-G", "No generator specified for -G", CommandArgument::Values::One,
     "-G", "No generator specified for -G", CommandArgument::Values::One,
     CommandArgument::RequiresSeparator::No,
     CommandArgument::RequiresSeparator::No,
     [&](std::string const& value, cmake* state) -> bool {
     [&](std::string const& value, cmake* state) -> bool {
-      bool valid = state->CreateAndSetGlobalGenerator(value, true);
+      bool valid = state->CreateAndSetGlobalGenerator(value);
       badGeneratorName = !valid;
       badGeneratorName = !valid;
       return valid;
       return valid;
     });
     });
@@ -1569,8 +1569,7 @@ void cmake::SetArgs(const std::vector<std::string>& args)
       this->SetHomeOutputDirectory(expandedPreset->BinaryDir);
       this->SetHomeOutputDirectory(expandedPreset->BinaryDir);
     }
     }
     if (!this->GlobalGenerator && !expandedPreset->Generator.empty()) {
     if (!this->GlobalGenerator && !expandedPreset->Generator.empty()) {
-      if (!this->CreateAndSetGlobalGenerator(expandedPreset->Generator,
-                                             false)) {
+      if (!this->CreateAndSetGlobalGenerator(expandedPreset->Generator)) {
         return;
         return;
       }
       }
     }
     }
@@ -1940,16 +1939,12 @@ void cmake::AddDefaultExtraGenerators()
 #endif
 #endif
 }
 }
 
 
-void cmake::GetRegisteredGenerators(std::vector<GeneratorInfo>& generators,
-                                    bool includeNamesWithPlatform) const
+void cmake::GetRegisteredGenerators(
+  std::vector<GeneratorInfo>& generators) const
 {
 {
   for (const auto& gen : this->Generators) {
   for (const auto& gen : this->Generators) {
     std::vector<std::string> names = gen->GetGeneratorNames();
     std::vector<std::string> names = gen->GetGeneratorNames();
 
 
-    if (includeNamesWithPlatform) {
-      cm::append(names, gen->GetGeneratorNamesWithPlatform());
-    }
-
     for (std::string const& name : names) {
     for (std::string const& name : names) {
       GeneratorInfo info;
       GeneratorInfo info;
       info.supportsToolset = gen->SupportsToolset();
       info.supportsToolset = gen->SupportsToolset();
@@ -2017,7 +2012,7 @@ createExtraGenerator(
 }
 }
 
 
 std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
 std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
-  const std::string& gname, bool allowArch)
+  const std::string& gname)
 {
 {
   std::pair<std::unique_ptr<cmExternalMakefileProjectGenerator>, std::string>
   std::pair<std::unique_ptr<cmExternalMakefileProjectGenerator>, std::string>
     extra = createExtraGenerator(this->ExtraGenerators, gname);
     extra = createExtraGenerator(this->ExtraGenerators, gname);
@@ -2027,7 +2022,7 @@ std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
 
 
   std::unique_ptr<cmGlobalGenerator> generator;
   std::unique_ptr<cmGlobalGenerator> generator;
   for (const auto& g : this->Generators) {
   for (const auto& g : this->Generators) {
-    generator = g->CreateGlobalGenerator(name, allowArch, this);
+    generator = g->CreateGlobalGenerator(name, this);
     if (generator) {
     if (generator) {
       break;
       break;
     }
     }
@@ -2040,17 +2035,16 @@ std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
   return generator;
   return generator;
 }
 }
 
 
-bool cmake::CreateAndSetGlobalGenerator(const std::string& name,
-                                        bool allowArch)
+bool cmake::CreateAndSetGlobalGenerator(const std::string& name)
 {
 {
-  auto gen = this->CreateGlobalGenerator(name, allowArch);
+  auto gen = this->CreateGlobalGenerator(name);
   if (!gen) {
   if (!gen) {
     std::string kdevError;
     std::string kdevError;
     std::string vsError;
     std::string vsError;
     if (name.find("KDevelop3", 0) != std::string::npos) {
     if (name.find("KDevelop3", 0) != std::string::npos) {
       kdevError = "\nThe KDevelop3 generator is not supported anymore.";
       kdevError = "\nThe KDevelop3 generator is not supported anymore.";
     }
     }
-    if (!allowArch && cmHasLiteralPrefix(name, "Visual Studio ") &&
+    if (cmHasLiteralPrefix(name, "Visual Studio ") &&
         name.length() >= cmStrLen("Visual Studio xx xxxx ")) {
         name.length() >= cmStrLen("Visual Studio xx xxxx ")) {
       vsError = "\nUsing platforms in Visual Studio generator names is not "
       vsError = "\nUsing platforms in Visual Studio generator names is not "
                 "supported in CMakePresets.json.";
                 "supported in CMakePresets.json.";
@@ -2070,7 +2064,7 @@ bool cmake::CreateAndSetGlobalGenerator(const std::string& name,
 void cmake::PrintPresetList(const cmCMakePresetsGraph& graph) const
 void cmake::PrintPresetList(const cmCMakePresetsGraph& graph) const
 {
 {
   std::vector<GeneratorInfo> generators;
   std::vector<GeneratorInfo> generators;
-  this->GetRegisteredGenerators(generators, false);
+  this->GetRegisteredGenerators(generators);
   auto filter =
   auto filter =
     [&generators](const cmCMakePresetsGraph::ConfigurePreset& preset) -> bool {
     [&generators](const cmCMakePresetsGraph::ConfigurePreset& preset) -> bool {
     if (preset.Generator.empty()) {
     if (preset.Generator.empty()) {

+ 3 - 4
Source/cmake.h

@@ -246,10 +246,10 @@ public:
 
 
   //! Create a GlobalGenerator
   //! Create a GlobalGenerator
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
   std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
-    const std::string& name, bool allowArch = true);
+    const std::string& name);
 
 
   //! Create a GlobalGenerator and set it as our own
   //! Create a GlobalGenerator and set it as our own
-  bool CreateAndSetGlobalGenerator(const std::string& name, bool allowArch);
+  bool CreateAndSetGlobalGenerator(const std::string& name);
 
 
 #ifndef CMAKE_BOOTSTRAP
 #ifndef CMAKE_BOOTSTRAP
   //! Print list of configure presets
   //! Print list of configure presets
@@ -274,8 +274,7 @@ public:
   void SetGlobalGenerator(std::unique_ptr<cmGlobalGenerator>);
   void SetGlobalGenerator(std::unique_ptr<cmGlobalGenerator>);
 
 
   //! Get the names of the current registered generators
   //! Get the names of the current registered generators
-  void GetRegisteredGenerators(std::vector<GeneratorInfo>& generators,
-                               bool includeNamesWithPlatform = true) const;
+  void GetRegisteredGenerators(std::vector<GeneratorInfo>& generators) const;
 
 
   //! Set the name of the selected generator-specific instance.
   //! Set the name of the selected generator-specific instance.
   void SetGeneratorInstance(std::string const& instance)
   void SetGeneratorInstance(std::string const& instance)

+ 1 - 1
Tests/CMakeTests/StringTest.cmake.in

@@ -84,7 +84,7 @@ check_cmake_test(String
 # Execute each test listed in StringTestScript.cmake:
 # Execute each test listed in StringTestScript.cmake:
 #
 #
 set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/StringTestScript.cmake")
 set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/StringTestScript.cmake")
-set(number_of_tests_expected 74)
+set(number_of_tests_expected 72)
 
 
 include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
 include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
 execute_all_script_tests(${scriptname} number_of_tests_executed)
 execute_all_script_tests(${scriptname} number_of_tests_executed)

+ 3 - 12
Tests/CMakeTests/StringTestScript.cmake

@@ -1,8 +1,6 @@
 message(STATUS "testname='${testname}'")
 message(STATUS "testname='${testname}'")
 
 
-function(test_configure_line_number EXPRESSION POLICY)
-  cmake_policy(PUSH)
-  cmake_policy(SET CMP0053 ${POLICY})
+function(test_configure_line_number EXPRESSION)
   string(CONFIGURE
   string(CONFIGURE
   "${EXPRESSION}" v) # line should indicate string() call
   "${EXPRESSION}" v) # line should indicate string() call
   math(EXPR vplus3 "${v} + 3")
   math(EXPR vplus3 "${v} + 3")
@@ -10,7 +8,6 @@ function(test_configure_line_number EXPRESSION POLICY)
     message(SEND_ERROR "Couldn't configure CMAKE_CURRENT_LIST_LINE, evaluated into '${v}'")
     message(SEND_ERROR "Couldn't configure CMAKE_CURRENT_LIST_LINE, evaluated into '${v}'")
   endif()
   endif()
   message(STATUS "v='${v}'")
   message(STATUS "v='${v}'")
-  cmake_policy(POP)
 endfunction()
 endfunction()
 
 
 if(testname STREQUAL empty) # fail
 if(testname STREQUAL empty) # fail
@@ -45,16 +42,10 @@ elseif(testname STREQUAL configure_escape_quotes) # pass
   string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES)
   string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES)
   message(STATUS "v='${v}'")
   message(STATUS "v='${v}'")
 
 
-elseif(testname STREQUAL configure_line_number_CMP0053_old) # pass
-  test_configure_line_number("\${CMAKE_CURRENT_LIST_LINE}" OLD)
-
-elseif(testname STREQUAL configure_line_number_CMP0053_new) # pass
+elseif(testname STREQUAL configure_line_number_curly) # pass
   test_configure_line_number("\${CMAKE_CURRENT_LIST_LINE}" NEW)
   test_configure_line_number("\${CMAKE_CURRENT_LIST_LINE}" NEW)
 
 
-elseif(testname STREQUAL configure_line_number_CMP0053_old_use_at) # pass
-  test_configure_line_number("\@CMAKE_CURRENT_LIST_LINE\@" OLD)
-
-elseif(testname STREQUAL configure_line_number_CMP0053_new_use_at) # pass
+elseif(testname STREQUAL configure_line_number_at) # pass
   test_configure_line_number("\@CMAKE_CURRENT_LIST_LINE\@" NEW)
   test_configure_line_number("\@CMAKE_CURRENT_LIST_LINE\@" NEW)
 
 
 elseif(testname STREQUAL configure_bogus) # fail
 elseif(testname STREQUAL configure_bogus) # fail

+ 0 - 3
Tests/RunCMake/CMP0051/CMP0051-NEW.cmake

@@ -1,6 +1,3 @@
-
-cmake_policy(SET CMP0051 NEW)
-
 add_library(objects OBJECT empty.cpp)
 add_library(objects OBJECT empty.cpp)
 
 
 add_library(empty empty.cpp $<TARGET_OBJECTS:objects>)
 add_library(empty empty.cpp $<TARGET_OBJECTS:objects>)

+ 0 - 12
Tests/RunCMake/CMP0051/CMP0051-OLD-stderr.txt

@@ -1,12 +0,0 @@
-^CMake Deprecation Warning at CMP0051-OLD.cmake:2 \(cmake_policy\):
-  The OLD behavior for policy CMP0051 will be removed from a future version
-  of CMake.
-
-  The cmake-policies\(7\) manual explains that the OLD behaviors of all
-  policies are deprecated and that a policy should be set to OLD only under
-  specific short-term circumstances.  Projects should be ported to the NEW
-  behavior and not rely on setting a policy to OLD.
-Call Stack \(most recent call first\):
-  CMakeLists\.txt:[0-9]+ \(include\)
-+
-Sources: "empty.cpp"$

+ 0 - 10
Tests/RunCMake/CMP0051/CMP0051-OLD.cmake

@@ -1,10 +0,0 @@
-
-cmake_policy(SET CMP0051 OLD)
-
-add_library(objects OBJECT empty.cpp)
-
-add_library(empty empty.cpp $<TARGET_OBJECTS:objects>)
-
-get_target_property(srcs empty SOURCES)
-
-message("Sources: \"${srcs}\"")

Some files were not shown because too many files changed in this diff