{- This module was generated from data in the Kate syntax
   highlighting file cmake.xml, version 2, by Alexander Neundorf (neundorf@kde.org) -}

module Text.Highlighting.Kate.Syntax.Cmake
          (highlight, parseExpression, syntaxName, syntaxExtensions)
where
import Text.Highlighting.Kate.Types
import Text.Highlighting.Kate.Common
import qualified Text.Highlighting.Kate.Syntax.Alert
import qualified Text.Highlighting.Kate.Syntax.Modelines
import Text.ParserCombinators.Parsec hiding (State)
import Control.Monad.State
import Data.Char (isSpace)
import qualified Data.Set as Set

-- | Full name of language.
syntaxName :: String
syntaxName = "CMake"

-- | Filename extensions for this language.
syntaxExtensions :: String
syntaxExtensions = "CMakeLists.txt;*.cmake;*.cmake.in"

-- | Highlight source code using this syntax definition.
highlight :: String -> [SourceLine]
highlight input = evalState (mapM parseSourceLine $ lines input) startingState

parseSourceLine :: String -> State SyntaxState SourceLine
parseSourceLine = mkParseSourceLine (parseExpression Nothing)

-- | Parse an expression using appropriate local context.
parseExpression :: Maybe (String,String)
                -> KateParser Token
parseExpression mbcontext = do
  (lang,cont) <- maybe currentContext return mbcontext
  result <- parseRules (lang,cont)
  optional $ do eof
                updateState $ \st -> st{ synStPrevChar = '\n' }
                pEndLine
  return result

startingState = SyntaxState {synStContexts = [("CMake","Normal Text")], synStLineNumber = 0, synStPrevChar = '\n', synStPrevNonspace = False, synStContinuation = False, synStCaseSensitive = True, synStKeywordCaseSensitive = True, synStCaptures = []}

pEndLine = do
  updateState $ \st -> st{ synStPrevNonspace = False }
  context <- currentContext
  contexts <- synStContexts `fmap` getState
  st <- getState
  if length contexts >= 2
    then case context of
      _ | synStContinuation st -> updateState $ \st -> st{ synStContinuation = False }
      ("CMake","Normal Text") -> return ()
      ("CMake","Detect More Builtin Variables") -> return ()
      ("CMake","Detect Builtin Variables") -> return ()
      ("CMake","VarSubst") -> (popContext) >> pEndLine
      ("CMake","Detect Variables") -> return ()
      ("CMake","DetectSimpleGEEnd") -> (popContext >> popContext) >> pEndLine
      ("CMake","Generator Expression") -> (popContext) >> pEndLine
      ("CMake","Detect Generator Expressions") -> return ()
      ("CMake","Command Args") -> return ()
      ("CMake","Macro Args") -> return ()
      ("CMake","Comment") -> (popContext) >> pEndLine
      ("CMake","RST Documentation") -> return ()
      ("CMake","Bracketed Comment") -> return ()
      ("CMake","String") -> return ()
      ("CMake","Bracketed String") -> return ()
      _ -> return ()
    else return ()

withAttribute attr txt = do
  when (null txt) $ fail "Parser matched no text"
  updateState $ \st -> st { synStPrevChar = last txt
                          , synStPrevNonspace = synStPrevNonspace st || not (all isSpace txt) }
  return (attr, txt)

list_commands = Set.fromList $ words $ "add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command build_name cmake_host_system_information cmake_minimum_required cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile exec_program execute_process export export_library_dependencies file find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install install_files install_programs install_targets link_directories link_libraries list load_cache load_command macro make_directory mark_as_advanced math message option output_required_files project qt_wrap_cpp qt_wrap_ui remove remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string subdir_depends subdirs target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_libraries target_sources try_compile try_run unset use_mangled_mesa utility_source variable_requires variable_watch while write_file"
list_itkvtk'5fcommands = Set.fromList $ words $ "itk_wrap_tcl vtk_make_instantiator vtk_wrap_java vtk_wrap_python vtk_wrap_tcl"
list_special'5fargs = Set.fromList $ words $ "AFTER ALIAS ALL ALPHABET AND APPEND APPENDNUMBER_ERRORS APPEND_STRING ARCHIVE ARGS ASCII AUTHOR_WARNING BEFORE BRIEF_DOCS BUILD BUNDLE BYPRODUCTS CACHE CACHED_VARIABLE CDASH_UPLOAD CDASH_UPLOAD_TYPE CLEAR CMAKE_FIND_ROOT_PATH_BOTH CMAKE_FLAGS CODE COMMAND COMMAND_NAME COMMENT COMPARE COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR COMPONENT COMPONENTS CONCAT CONDITION CONFIG CONFIGS CONFIGURATION CONFIGURATIONS CONFIGURE CONTENT COPY COPYONLY COPY_FILE COPY_FILE_ERROR CRLF DEFINED DEFINITION DEPENDS DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DOC DOS DOWNLOAD ENV END EQUAL ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE ESCAPE_QUOTES EXACT EXCLUDE EXCLUDE_FROM_ALL EXCLUDE_LABEL EXISTS EXPECTED_HASH EXPECTED_MD5 EXPORT EXPORT_LINK_INTERFACE_LIBRARIES EXPR EXTRA_INCLUDE FATAL_ERROR FILE FILES FILES_MATCHING FILE_PERMISSIONS FIND FLAGS FOLLOW_SYMLINKS FORCE FRAMEWORK FULL_DOCS FUNCTION GENERATE GENEX_STRIP GET GLOB GLOBAL GLOB_RECURSE GREATER GROUP_EXECUTE GROUP_READ GUARD GUID HEX HINTS IMPLICIT_DEPENDS IMPORTED IN INACTIVITY_TIMEOUT INCLUDE INCLUDES INCLUDE_INTERNALS INCLUDE_LABEL INHERITED INPUT INPUT_FILE INSERT INSTALL INTERFACE IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK ITEMS LABELS LANGUAGES LENGTH LENGTH_MAXIMUM LENGTH_MINIMUM LESS LF LIBRARY LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LINK_INTERFACE_LIBRARIES LINK_LIBRARIES LINK_PRIVATE LINK_PUBLIC LISTS LIST_DIRECTORIES LOCK LOG MACOSX_BUNDLE MAIN_DEPENDENCY MAKE_C_IDENTIFIER MAKE_DIRECTORY MATCH MATCHALL MATCHES MD5 MESSAGE_NEVER MODULE NAME NAMELINK_ONLY NAMELINK_SKIP NAMES NAMESPACE NAMES_PER_DIR NEW NEWLINE_CONSUME NEWLINE_STYLE NEW_PROCESS NOT NOTEQUAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_HEX_CONVERSION NO_MODULE NO_POLICY_SCOPE NO_SOURCE_PERMISSIONS NO_SYSTEM_ENVIRONMENT_PATH NUMBER_ERRORS NUMBER_WARNINGS OBJECT OFF OFFSET OLD ON ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL OPTIONAL_COMPONENTS OPTIONS OR OUTPUT OUTPUT_DIRECTORY OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE OWNER_EXECUTE OWNER_READ OWNER_WRITE PACKAGE PARALLEL_LEVEL PARENT_SCOPE PARTS PATHS PATH_SUFFIXES PATH_TO_MESA PATTERN PERMISSIONS PLATFORM POLICY POP POST_BUILD PREORDER PRE_BUILD PRE_LINK PRIVATE PRIVATE_HEADER PROCESS PROGRAM PROGRAMS PROGRAM_ARGS PROJECT_NAME PROPERTIES PROPERTY PUBLIC PUBLIC_HEADER PUSH QUERY QUIET RANDOM RANDOM_SEED RANGE READ READ_WITH_PREFIX REGEX REGULAR_EXPRESSION RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REMOVE_RECURSE RENAME REPLACE REQUIRED REQUIRED_VARIABLE1 REQUIRED_VARIABLE2 RESOURCE RESULT RESULT_VAR RESULT_VARIABLE RETRY_COUNT RETRY_DELAY RETURN_VALUE REVERSE RUNTIME RUNTIME_DIRECTORY RUN_OUTPUT_VARIABLE RUN_RESULT_VAR SCHEDULE_RANDOM SCRIPT SEND_ERROR SET SHA1 SHA224 SHA256 SHA384 SHA512 SHARED SHOW_PROGRESS SORT SOURCE SOURCES START STATIC STATUS STREQUAL STRGREATER STOP_TIME STRIDE STRINGS STRIP STRLESS SUBSTRING SYSTEM TARGET TARGETS TEST TEST_VARIABLE TIMEOUT TIMESTAMP TLS_CAINFO TLS_VERIFY TOLOWER TOUPPER TO_CMAKE_PATH TO_NATIVE_PATH TRACK TYPE UNIX UNIX_COMMAND UNKNOWN UPLOAD UPPER USES_TERMINAL USE_SOURCE_PERMISSIONS UTC UUID VALUE VARIABLE VERBATIM VERSION VERSION_EQUAL VERSION_GREATER VERSION_LESS WARNING WIN32 WINDOWS_COMMAND WORKING_DIRECTORY WRITE"
list_extra'5fspecial'5fargs = Set.fromList $ words $ "PATH NAME EXT NAME_WE ABSOLUTE REALPATH FILEPATH STRING BOOL INTERNAL NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES HOSTNAME FQDN TOTAL_VIRTUAL_MEMORY AVAILABLE_VIRTUAL_MEMORY TOTAL_PHYSICAL_MEMORY AVAILABLE_PHYSICAL_MEMORY IN_LIST"
list_properties = Set.fromList $ words $ "ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_API ANDROID_API_MIN ANDROID_GUI ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_MOC_OPTIONS AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTOUIC AUTOUIC_OPTIONS BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FOLDER FRAMEWORK Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS IMPORTED_IMPLIB IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TIMEOUT TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DOTNET_REFERENCES VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_KEYWORD VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EXPLICIT_FILE_TYPE XCODE_LAST_KNOWN_FILE_TYPE XCTEST"
list_extra'5fproperties = Set.fromList $ words $ "COMMANDS DEFINITION"
list_cmake'5fvars = Set.fromList $ words $ "APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_GUI CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DL_LIBS CMAKE_EDIT_COMMAND CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_PATH CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STANDARD_LIBRARIES CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_SYSROOT CMAKE_SYSTEM CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_MSDEV_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_GIT_COMMAND CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE_VERSION"
list_simple'5fgenerator'5fexpr = Set.fromList $ words $ "CONFIGURATION ANGLE-R COMMA SEMICOLON INSTALL_PREFIX"
list_generator'5fexpr = Set.fromList $ words $ "0 1 BOOL AND OR NOT STREQUAL EQUAL CONFIG PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_GREATER VERSION_LESS VERSION_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILER_FEATURES CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_PROPERTY INSTALL_PREFIX JOIN ANGLE-R COMMA SEMICOLON TARGET_NAME LINK_ONLY INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS TARGET_DIR"

regex_'23'5cs'2aBEGIN'2e'2a'24 = compileRegex True "#\\s*BEGIN.*$"
regex_'23'5cs'2aEND'2e'2a'24 = compileRegex True "#\\s*END.*$"
regex_'23'5c'5b'28'3d'2a'29'5c'5b'5c'2erst'3a = compileRegex True "#\\[(=*)\\[\\.rst:"
regex_'23'5c'5b'28'3d'2a'29'5c'5b = compileRegex True "#\\[(=*)\\["
regex_'5cw'2b'5cs'2a'28'3f'3d'5c'28'29 = compileRegex True "\\w+\\s*(?=\\()"
regex_'5cbCMAKE'5fARCHIVE'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fCOMPILER'5fIS'5fGNU'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fCOMPILE'5fPDB'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fDISABLE'5fFIND'5fPACKAGE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fEXE'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fLIBRARY'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fMAP'5fIMPORTED'5fCONFIG'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fMODULE'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fPDB'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fPOLICY'5fDEFAULT'5fCMP'5b0'2d9'5d'2b'5cb = compileRegex True "\\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\\b"
regex_'5cbCMAKE'5fPOLICY'5fWARNING'5fCMP'5b0'2d9'5d'2b'5cb = compileRegex True "\\bCMAKE_POLICY_WARNING_CMP[0-9]+\\b"
regex_'5cbCMAKE'5fPROJECT'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fINCLUDE'5cb = compileRegex True "\\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\\b"
regex_'5cbCMAKE'5fRUNTIME'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fSHARED'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fSTATIC'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fUSER'5fMAKE'5fRULES'5fOVERRIDE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5fXCODE'5fATTRIBUTE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb = compileRegex True "\\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fAPPEND'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fCREATE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fFINISH'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fABI'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fEXTERNAL'5fTOOLCHAIN'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fID'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fLOADED'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fTARGET'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fVERSION'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILE'5fOBJECT'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSHARED'5fLIBRARY'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSHARED'5fMODULE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSTATIC'5fLIBRARY'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fDEBUG'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fMINSIZEREL'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fRELEASE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fRELWITHDEBINFO'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fDEBUG'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fMINSIZEREL'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fRELEASE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fRELWITHDEBINFO'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIGNORE'5fEXTENSIONS'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fINCLUDE'5fDIRECTORIES'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fDIRECTORIES'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fFRAMEWORK'5fDIRECTORIES'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fLIBRARIES'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fINCLUDE'5fWHAT'5fYOU'5fUSE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLIBRARY'5fARCHITECTURE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINKER'5fPREFERENCE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINKER'5fPREFERENCE'5fPROPAGATES'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINK'5fEXECUTABLE'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fOUTPUT'5fEXTENSION'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fPLATFORM'5fID'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fPOSTFIX'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIMULATE'5fID'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIMULATE'5fVERSION'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIZEOF'5fDATA'5fPTR'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSOURCE'5fFILE'5fEXTENSIONS'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\\b"
regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVISIBILITY'5fPRESET'5cb = compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fBINARY'5fDIR'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSOURCE'5fDIR'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fMAJOR'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fMINOR'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fPATCH'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\\b"
regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fTWEAK'5cb = compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\\b"
regex_'5c'24ENV'5c'7b'5cs'2a'5b'5cw'2d'5d'2b'5cs'2a'5c'7d = compileRegex True "\\$ENV\\{\\s*[\\w-]+\\s*\\}"
regex_'5cbCMP'5b0'2d9'5d'2b'5cb = compileRegex True "\\bCMP[0-9]+\\b"
regex_'5c'5c'5b'22'24n'5c'5c'5d = compileRegex True "\\\\[\"$n\\\\]"
regex_'5c'5b'28'3d'2a'29'5c'5b = compileRegex True "\\[(=*)\\["
regex_'22'28'3f'3d'5b_'29'3b'5d'7c'24'29 = compileRegex True "\"(?=[ );]|$)"
regex_'5c'5c'5b'22'24nrt'5c'5c'5d = compileRegex True "\\\\[\"$nrt\\\\]"

parseRules ("CMake","Normal Text") =
  (((pDetectSpaces >>= withAttribute NormalTok))
   <|>
   ((pRegExpr (compileRegex True "\\bif\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\belse\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\belseif\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bendif\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bmacro\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bendmacro\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bforeach\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bendforeach\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bwhile\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pRegExpr (compileRegex True "\\bendwhile\\b") >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_commands >>= withAttribute KeywordTok) >>~ pushContext ("CMake","Command Args"))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_itkvtk'5fcommands >>= withAttribute ExtensionTok))
   <|>
   ((pFirstNonSpace >> pRegExpr regex_'23'5cs'2aBEGIN'2e'2a'24 >>= withAttribute RegionMarkerTok))
   <|>
   ((pFirstNonSpace >> pRegExpr regex_'23'5cs'2aEND'2e'2a'24 >>= withAttribute RegionMarkerTok))
   <|>
   ((pColumn 0 >> pRegExpr regex_'23'5c'5b'28'3d'2a'29'5c'5b'5c'2erst'3a >>= withAttribute RegionMarkerTok) >>~ pushContext ("CMake","RST Documentation"))
   <|>
   ((pColumn 0 >> pRegExpr regex_'23'5c'5b'28'3d'2a'29'5c'5b >>= withAttribute CommentTok) >>~ pushContext ("CMake","Bracketed Comment"))
   <|>
   ((pDetectChar False '#' >>= withAttribute CommentTok) >>~ pushContext ("CMake","Comment"))
   <|>
   ((parseRules ("CMake","Detect Variables")))
   <|>
   ((pRegExpr regex_'5cw'2b'5cs'2a'28'3f'3d'5c'28'29 >>= withAttribute FunctionTok) >>~ pushContext ("CMake","Macro Args"))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Normal Text")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","Detect More Builtin Variables") =
  (((pRegExpr regex_'5cbCMAKE'5fARCHIVE'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fCOMPILER'5fIS'5fGNU'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fCOMPILE'5fPDB'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fDISABLE'5fFIND'5fPACKAGE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fEXE'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fLIBRARY'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fMAP'5fIMPORTED'5fCONFIG'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fMODULE'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fPDB'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fPOLICY'5fDEFAULT'5fCMP'5b0'2d9'5d'2b'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fPOLICY'5fWARNING'5fCMP'5b0'2d9'5d'2b'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fPROJECT'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fINCLUDE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fRUNTIME'5fOUTPUT'5fDIRECTORY'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fSHARED'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fSTATIC'5fLINKER'5fFLAGS'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fUSER'5fMAKE'5fRULES'5fOVERRIDE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5fXCODE'5fATTRIBUTE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fAPPEND'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fCREATE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fARCHIVE'5fFINISH'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fABI'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fEXTERNAL'5fTOOLCHAIN'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fID'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fLOADED'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fTARGET'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILER'5fVERSION'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCOMPILE'5fOBJECT'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSHARED'5fLIBRARY'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSHARED'5fMODULE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fCREATE'5fSTATIC'5fLIBRARY'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fDEBUG'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fMINSIZEREL'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fRELEASE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fFLAGS'5fRELWITHDEBINFO'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fDEBUG'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fMINSIZEREL'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fRELEASE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fGHS'5fKERNEL'5fFLAGS'5fRELWITHDEBINFO'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIGNORE'5fEXTENSIONS'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fINCLUDE'5fDIRECTORIES'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fDIRECTORIES'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fFRAMEWORK'5fDIRECTORIES'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fIMPLICIT'5fLINK'5fLIBRARIES'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fINCLUDE'5fWHAT'5fYOU'5fUSE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLIBRARY'5fARCHITECTURE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINKER'5fPREFERENCE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINKER'5fPREFERENCE'5fPROPAGATES'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fLINK'5fEXECUTABLE'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fOUTPUT'5fEXTENSION'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fPLATFORM'5fID'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fPOSTFIX'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIMULATE'5fID'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIMULATE'5fVERSION'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSIZEOF'5fDATA'5fPTR'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSOURCE'5fFILE'5fEXTENSIONS'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cbCMAKE'5f'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVISIBILITY'5fPRESET'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fBINARY'5fDIR'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fSOURCE'5fDIR'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fMAJOR'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fMINOR'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fPATCH'5cb >>= withAttribute VariableTok))
   <|>
   ((pRegExpr regex_'5cb'5bA'2dZa'2dz'5f'5d'5bA'2dZa'2dz'5f0'2d9'5d'2a'5fVERSION'5fTWEAK'5cb >>= withAttribute VariableTok))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Detect More Builtin Variables")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","Detect Builtin Variables") =
  (((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_cmake'5fvars >>= withAttribute VariableTok))
   <|>
   ((parseRules ("CMake","Detect More Builtin Variables")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Detect Builtin Variables")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","VarSubst") =
  (((parseRules ("CMake","Detect Builtin Variables")))
   <|>
   ((pDetectIdentifier >>= withAttribute VariableTok))
   <|>
   ((pDetectChar False '}' >>= withAttribute VariableTok) >>~ (popContext))
   <|>
   ((parseRules ("CMake","Detect Variables")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","VarSubst")) >> pDefault >>= withAttribute VariableTok))

parseRules ("CMake","Detect Variables") =
  (((pRegExpr regex_'5c'24ENV'5c'7b'5cs'2a'5b'5cw'2d'5d'2b'5cs'2a'5c'7d >>= withAttribute FloatTok))
   <|>
   ((pDetect2Chars False '$' '{' >>= withAttribute VariableTok) >>~ pushContext ("CMake","VarSubst"))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Detect Variables")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","DetectSimpleGEEnd") =
  (((pDetectChar False '>' >>= withAttribute OtherTok) >>~ (popContext >> popContext))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","DetectSimpleGEEnd")) >> pDefault >>= withAttribute OtherTok))

parseRules ("CMake","Generator Expression") =
  (((parseRules ("CMake","Detect Generator Expressions")))
   <|>
   ((pDetectChar False '>' >>= withAttribute OtherTok) >>~ (popContext))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_simple'5fgenerator'5fexpr >>= withAttribute KeywordTok) >>~ pushContext ("CMake","DetectSimpleGEEnd"))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_generator'5fexpr >>= withAttribute KeywordTok))
   <|>
   ((parseRules ("CMake","Detect Variables")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Generator Expression")) >> pDefault >>= withAttribute OtherTok))

parseRules ("CMake","Detect Generator Expressions") =
  (((pDetect2Chars False '$' '<' >>= withAttribute OtherTok) >>~ pushContext ("CMake","Generator Expression"))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Detect Generator Expressions")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","Command Args") =
  (((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_special'5fargs >>= withAttribute OtherTok))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_extra'5fspecial'5fargs >>= withAttribute OtherTok))
   <|>
   ((pRegExpr regex_'5cbCMP'5b0'2d9'5d'2b'5cb >>= withAttribute OtherTok))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_properties >>= withAttribute OtherTok))
   <|>
   ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_extra'5fproperties >>= withAttribute OtherTok))
   <|>
   ((parseRules ("CMake","Detect Builtin Variables")))
   <|>
   ((parseRules ("CMake","Macro Args")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Command Args")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","Macro Args") =
  (((pDetectChar False ')' >>= withAttribute NormalTok) >>~ (popContext))
   <|>
   ((pRegExpr regex_'5c'5c'5b'22'24n'5c'5c'5d >>= withAttribute SpecialCharTok))
   <|>
   ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("CMake","String"))
   <|>
   ((pRegExpr regex_'5c'5b'28'3d'2a'29'5c'5b >>= withAttribute StringTok) >>~ pushContext ("CMake","Bracketed String"))
   <|>
   ((pDetectChar False '#' >>= withAttribute CommentTok) >>~ pushContext ("CMake","Comment"))
   <|>
   ((parseRules ("CMake","Detect Builtin Variables")))
   <|>
   ((parseRules ("CMake","Detect Variables")))
   <|>
   ((parseRules ("CMake","Detect Generator Expressions")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Macro Args")) >> pDefault >>= withAttribute NormalTok))

parseRules ("CMake","Comment") =
  (((pLineContinue >>= withAttribute CommentTok) >>~ (popContext))
   <|>
   ((Text.Highlighting.Kate.Syntax.Alert.parseExpression (Just ("Alerts","")) >>= ((withAttribute CommentTok) . snd)))
   <|>
   ((Text.Highlighting.Kate.Syntax.Modelines.parseExpression (Just ("Modelines","")) >>= ((withAttribute CommentTok) . snd)))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Comment")) >> pDefault >>= withAttribute CommentTok))

parseRules ("CMake","RST Documentation") =
  (((pColumn 0 >> pRegExprDynamic "#?\\]%1\\]" >>= withAttribute RegionMarkerTok) >>~ (popContext))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","RST Documentation")) >> pDefault >>= withAttribute CommentTok))

parseRules ("CMake","Bracketed Comment") =
  (((pColumn 0 >> pRegExprDynamic "#?\\]%1\\]" >>= withAttribute CommentTok) >>~ (popContext))
   <|>
   ((Text.Highlighting.Kate.Syntax.Alert.parseExpression (Just ("Alerts","")) >>= ((withAttribute CommentTok) . snd)))
   <|>
   ((Text.Highlighting.Kate.Syntax.Modelines.parseExpression (Just ("Modelines","")) >>= ((withAttribute CommentTok) . snd)))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Bracketed Comment")) >> pDefault >>= withAttribute CommentTok))

parseRules ("CMake","String") =
  (((pRegExpr regex_'22'28'3f'3d'5b_'29'3b'5d'7c'24'29 >>= withAttribute StringTok) >>~ (popContext))
   <|>
   ((pRegExpr regex_'5c'5c'5b'22'24nrt'5c'5c'5d >>= withAttribute SpecialCharTok))
   <|>
   ((parseRules ("CMake","Detect Variables")))
   <|>
   ((parseRules ("CMake","Detect Generator Expressions")))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","String")) >> pDefault >>= withAttribute StringTok))

parseRules ("CMake","Bracketed String") =
  (((pRegExprDynamic "\\]%1\\]" >>= withAttribute StringTok) >>~ (popContext))
   <|>
   (currentContext >>= \x -> guard (x == ("CMake","Bracketed String")) >> pDefault >>= withAttribute StringTok))

parseRules ("Alerts", _) = Text.Highlighting.Kate.Syntax.Alert.parseExpression Nothing
parseRules ("Modelines", _) = Text.Highlighting.Kate.Syntax.Modelines.parseExpression Nothing

parseRules x = parseRules ("CMake","Normal Text") <|> fail ("Unknown context" ++ show x)
