# To help us fund GROMACS development, we humbly ask that you cite
# the research papers on the package. Check out http://www.gromacs.org.
-cmake_minimum_required(VERSION 2.8.8)
-# When we require cmake >= 2.8.12, it will provide
-# CMAKE_MINIMUM_REQUIRED_VERSION automatically, but in the meantime we
-# need to set a variable, and it must have a different name.
-set(GMX_CMAKE_MINIMUM_REQUIRED_VERSION "2.8.8")
+cmake_minimum_required(VERSION 3.4.3)
# CMake modules/macros are in a subdirectory to keep this file cleaner
# This needs to be set before project() in order to pick up toolchain files
include(gmxBuildTypeReleaseWithAssert)
if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Reference RelWithAssert Profile." FORCE)
- # There's no need to offer a user the choice of ThreadSanitizer
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Reference RelWithAssert Profile TSAN ASAN MSAN." FORCE)
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
- "MinSizeRel" "RelWithDebInfo" "Reference" "RelWithAssert" "Profile")
+ "MinSizeRel" "RelWithDebInfo" "Reference" "RelWithAssert" "Profile" "TSAN" "ASAN" "MSAN")
endif()
if(CMAKE_CONFIGURATION_TYPES)
# Add appropriate GROMACS-specific build types for the Visual
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
-# Set a default valgrind suppression file.
-# This unfortunately needs to duplicate information from CTest to work as
-# expected...
-set(MEMORYCHECK_SUPPRESSIONS_FILE
- "${CMAKE_SOURCE_DIR}/cmake/legacy_and_external.supp"
- CACHE FILEPATH
- "File that contains suppressions for the memory checker")
-include(CTest)
+include(gmxCTestUtilities)
+gmx_ctest_init()
include(gmxCPackUtilities)
gmx_cpack_init()
option(GMX_USE_OPENCL "Enable OpenCL acceleration" OFF)
-# Decide on GPU settings based on user-settings and GPU/CUDA detection.
-# GCC 4.6 requires CUDA 5.0 and VS2015 requires CUDA 8.0
+# Decide on GPU settings based on user-settings and GPU/CUDA
+# detection. GCC 4.8 requires CUDA 6.0 (but we choose 6.5 for the
+# preliminary C++11 support), icc 15 requires CUDA 7.0, and VS2015
+# requires CUDA 8.0
if(MSVC)
set(REQUIRED_CUDA_VERSION 8.0)
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
+ set(REQUIRED_CUDA_VERSION 7.0)
else()
- set(REQUIRED_CUDA_VERSION 5.0)
+ set(REQUIRED_CUDA_VERSION 6.5)
endif()
set(REQUIRED_CUDA_COMPUTE_CAPABILITY 2.0)
include(gmxCFlags)
gmx_c_flags()
+# These collect libraries that Gromacs requires for linking:
+# - Libraries that are required for libgromacs (only)
+set(GMX_EXTRA_LIBRARIES "")
+# - Libraries that are required for all code in the repository
+set(GMX_COMMON_LIBRARIES "")
+# - Libraries that all code linked against libgromacs needs
+# (i.e., something that is exposed in installed headers).
+set(GMX_PUBLIC_LIBRARIES "")
+
# This variable should be used for additional compiler flags which are not
# generated in gmxCFlags nor are SIMD or MPI related.
set(EXTRA_C_FLAGS "")
# Run through a number of tests for buggy compilers and other issues
include(gmxTestCompilerProblems)
gmx_test_compiler_problems()
-# GMX_SIMD will not be set automatically until the second
-# pass (which is not strictly guaranteed to occur), so putting this
-# check here among logically-related tests is inefficient, but the
-# potential loss is likely zero.
-if(GMX_SIMD STREQUAL "AVX_256"
- AND CMAKE_COMPILER_IS_GNUCC
- AND (C_COMPILER_VERSION VERSION_EQUAL "4.6.1"
- OR CXX_COMPILER_VERSION VERSION_EQUAL "4.6.1"))
- message(FATAL_ERROR "gcc 4.6.1 has buggy support for AVX, and GROMACS mdrun will not work. If you want simulation performance, use a more recent compiler. Otherwise, use GMX_SIMD=SSE4.1")
- # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49002
-endif()
# Implement double-precision option. This is complicated because we
# need installed headers to use the precision mode of the build that
# Find external packages #
########################################################################
-# TNG wants zlib if it is available. And static libxml2 might have a dependency
-find_package(ZLIB QUIET)
-include(gmxTestZLib)
-gmx_test_zlib(HAVE_ZLIB)
-
# Unconditionally find the package, as it is also required for unit
# tests. This exports LIBXML2_FOUND, which we should not use because
# it does not tell us that linking will succeed. Instead, we test that
set(Hwloc_FIND_QUIETLY TRUE)
endif()
find_package(Hwloc 1.5)
- if(HWLOC_FOUND)
- set(GMX_HWLOC_DEFAULT ON)
+ if (HWLOC_FOUND)
+ if (HWLOC_LIBRARIES MATCHES ".a$")
+ set(_STATIC_HWLOC TRUE)
+ endif()
+
+ gmx_check_if_changed(HWLOC_FOUND_CHANGED HWLOC_FOUND)
+ if (_STATIC_HWLOC AND HWLOC_FOUND_CHANGED)
+ message(STATUS "Static hwloc library found, will not attempt using it as it could lead to link-time errors. To use the detected library, manually set GMX_HWLOC=ON and you will likely have to pass appropriate linker flags too to satisfy the link-time dependencies of your hwloc library. Try "pkg-config --libs --static hwloc" for suggestions on what you will need.")
+ set(GMX_HWLOC_DEFAULT OFF)
+ else()
+ set(GMX_HWLOC_DEFAULT ON)
+ endif()
else()
set(GMX_HWLOC_DEFAULT OFF)
endif()
option(GMX_HWLOC "Add support for hwloc Portable Hardware locality library" ${GMX_HWLOC_DEFAULT})
if(GMX_HWLOC)
if(HWLOC_FOUND)
- include_directories(${HWLOC_INCLUDE_DIRS})
+ include_directories(SYSTEM ${HWLOC_INCLUDE_DIRS})
list(APPEND GMX_EXTRA_LIBRARIES ${HWLOC_LIBRARIES})
else()
message(FATAL_ERROR "Hwloc package support requested, but not found.")
add_definitions(-DTMPI_ATOMICS_DISABLED)
endif()
-# Note this relies on zlib detection having already run
include(gmxManageTNG)
include(gmxManageLmfit)
if(GMX_GPU)
# now that we have detected the dependencies, do the second configure pass
gmx_gpu_setup()
-else()
- mark_as_advanced(CUDA_HOST_COMPILER)
endif()
if(CYGWIN)
add_definitions( -DHAVE_CONFIG_H )
include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src)
-include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/include)
+# TODO required at high level because both libgromacs and progs/mdrun
+# require it, both for thread-MPI and its atomics and mutexes.
+include_directories(BEFORE SYSTEM ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/include)
# Required for config.h, maybe should only be set in src/CMakeLists.txt
include_directories(BEFORE ${CMAKE_BINARY_DIR}/src)
endif()
# Math and thread libraries must often come after all others when linking...
-if(HAVE_LIBM)
- list(APPEND GMX_EXTRA_LIBRARIES m)
+if (HAVE_LIBM)
+ list(APPEND GMX_PUBLIC_LIBRARIES m)
endif()
option(GMX_NACL "Configure for Native Client builds" OFF)
message("CMAKE_CXX_FLAGS_RELEASE: ${GMXC_CXXFLAGS_RELEASE}")
message("CMAKE_CXX_FLAGS_DEBUG: ${GMXC_CXXFLAGS_DEBUG}")
message("CMAKE_EXE_LINKER_FLAGS: ${FFT_LINKER_FLAGS} ${MPI_LINKER_FLAGS}")
- message("CMAKE_SHARED_LINKER_FLAGS: ${MPI_LINKER_FLAGS}")
+ message("CMAKE_SHARED_LINKER_FLAGS: ${FFT_LINKER_FLAGS} ${MPI_LINKER_FLAGS}")
endif()
if(NOT GMX_OPENMP)
################################################################
# Shared library load path settings
################################################################
-# CMake supports RPATH on OS X only from 2.8.12 upwards.
-# CMAKE_SYSTEM_VERSION > 8.0 matches OS X 10.5 and above, where RPATH support
-# was added.
-
if(NOT GMX_BUILD_SHARED_EXE)
# No rpath
set(CMAKE_SKIP_RPATH TRUE)
set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS) # remove -Wl,-Bdynamic
set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS)
-elseif((NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") OR
- ((CMAKE_SYSTEM_VERSION VERSION_GREATER 8.0) AND (NOT CMAKE_VERSION VERSION_LESS 2.8.12)))
+else()
# The build folder always has bin/ and lib/; if we are also going to
# install to lib/, then the installation RPATH works also in the build
# tree. This makes installation slightly faster (no need to rewrite the
endif()
# Set the RPATH as relative to the executable location to make the
# binaries relocatable.
- if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") #Assume OS X >=10.5
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${GMX_LIB_INSTALL_DIR}")
else()
set(CMAKE_INSTALL_RPATH "@executable_path/../${GMX_LIB_INSTALL_DIR}")
endif()
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_MACOSX_RPATH 1)
-else()
- # We are on Darwin/OSX, and CMake cannot handle RPATHs automatically.
- if(CMAKE_SYSTEM_VERSION VERSION_GREATER 8.0)
- # Set the RPATH options manually.
- set(CMAKE_INSTALL_NAME_DIR "@rpath")
- set(GMX_EXE_LINKER_FLAGS ${GMX_EXE_LINKER_FLAGS} "-Wl,-rpath,@executable_path/../${GMX_LIB_INSTALL_DIR}")
- else()
- # Use the old INSTALL_NAME_DIR mechanism if RPATH is not supported.
- set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}")
- endif()
endif()
#COPYING file: Only necessary for binary distributions.
endif()
if (BUILD_TESTING)
- # "tests" target builds all the separate test binaries.
- add_custom_target(tests)
- # "run-ctest" is an internal target that actually runs the tests.
- # This is necessary to be able to add separate targets that execute as part
- # of 'make check', but are ensured to be executed after the actual tests.
- add_custom_target(run-ctest
- COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
- COMMENT "Running all tests"
- VERBATIM)
- add_dependencies(run-ctest tests)
- # "check" target builds and runs all tests.
- add_custom_target(check DEPENDS run-ctest)
+ include(tests/CheckTarget.cmake)
endif()
if (NOT GMX_BUILD_MDRUN_ONLY)
if context.opts.x11:
cmake_opts['GMX_X11'] = 'ON'
+ # At least hwloc on Jenkins produces a massive amount of reports about
+ # memory leaks, which cannot be reasonably suppressed because ASAN cannot
+ # produce a reasonable stack trace for them.
+ if context.opts.asan:
+ cmake_opts['GMX_HWLOC'] = 'OFF'
+
regressiontests_path = context.workspace.get_project_dir(Project.REGRESSIONTESTS)
if context.job_type == JobType.RELEASE:
- # TODO: Consider using REGRESSIONTEST_DOWNLOAD here, after refactoring
- # it to make that possible. Or use some other mechanism to check the
- # MD5 of the regressiontests tarball (also taking into account the -dev
- # builds where the hardcoded value in gmxVersionInfo.cmake is not
- # accurate).
cmake_opts['REGRESSIONTEST_PATH'] = regressiontests_path
else:
if context.opts.mdrun_only:
else:
context.build_target(target='tests', keep_going=True)
- context.run_ctest(args=['--output-on-failure'])
+ context.run_ctest(args=['--output-on-failure'], memcheck=context.opts.asan)
context.build_target(target='install')
# TODO: Consider what could be tested about the installed binaries.
use_tmpi = not context.opts.mpi and context.opts.thread_mpi is not False
cmd = 'perl gmxtest.pl -mpirun mpirun -xml -nosuffix all'
- if context.opts.asan:
- cmd+=' -parse asan_symbolize.py'
# setting this stuff below is just a temporary solution,
# it should all be passed as a proper the runconf from outside
cmd += ' -nt 2'
if context.opts.double:
cmd += ' -double'
+ if context.opts.asan:
+ context.env.set_env_var('ASAN_OPTIONS', 'detect_leaks=0')
context.run_cmd(cmd, shell=True, failure_message='Regression tests failed to execute')
# The main interface to this machinery is the gmx_configure_version_file()
# CMake function. The signature is
# gmx_configure_version_file(<input> <output>
-# [REMOTE_HASH] [SOURCE_FILE]
+# [REMOTE_HASH]
# [TARGET <target>]
# [COMMENT <comment>])
# <input> Specify the input and output files as for configure_file().
# This variable is much more expensive to initialize than the
# others, so this allows local changes in this file to only
# compute that value when required if that becomes necessary.
-# SOURCE_FILE Signals that <output> will be used as a source file.
-# The function will set properties for the source file
-# appropriately to signify that it is generated.
# TARGET By default, this function uses add_custom_command() to
# generate the output file. If TARGET is specified, then
# add_custom_target() is used to create a target with the given
# The GROMACS convention is that these are the version number of the next
# release that is going to be made from this branch.
-set(GMX_VERSION_MAJOR 2016)
-set(GMX_VERSION_PATCH 2)
+set(GMX_VERSION_MAJOR 2017)
+set(GMX_VERSION_PATCH 0)
# The suffix, on the other hand, is used mainly for betas and release
# candidates, where it signifies the most recent such release from
# this branch; it will be empty before the first such release, as well
# here. The important thing is to minimize the chance of third-party
# code being able to dynamically link with a version of libgromacs
# that might not work.
-set(LIBRARY_SOVERSION_MAJOR 2)
-set(LIBRARY_SOVERSION_MINOR 1)
+set(LIBRARY_SOVERSION_MAJOR 3)
+set(LIBRARY_SOVERSION_MINOR 0)
set(LIBRARY_VERSION ${LIBRARY_SOVERSION_MAJOR}.${LIBRARY_SOVERSION_MINOR}.0)
#####################################################################
set(GMX_VERSION_STRING "${GMX_VERSION}${GMX_VERSION_SUFFIX}")
option(GMX_BUILD_TARBALL "Build tarball without -dev version suffix" OFF)
mark_as_advanced(GMX_BUILD_TARBALL)
- if (NOT SOURCE_IS_SOURCE_DISTRIBUTION AND NOT GMX_BUILD_TARBALL)
+ # If run with cmake -P, the -dev suffix is managed elsewhere.
+ if (NOT SOURCE_IS_SOURCE_DISTRIBUTION AND
+ NOT GMX_BUILD_TARBALL AND
+ NOT CMAKE_SCRIPT_MODE_FILE)
set(GMX_VERSION_STRING "${GMX_VERSION_STRING}-dev")
endif()
set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
-set(REGRESSIONTEST_BRANCH "refs/heads/release-2016")
-set(REGRESSIONTEST_MD5SUM "366438549270d005fa6def6e56ca0256" CACHE INTERNAL "MD5 sum of the regressiontests tarball")
+set(REGRESSIONTEST_BRANCH "refs/heads/master")
- # TODO Find some way of ensuring that this is bumped appropriately for
- # each release. It's hard to test because it is only used for
- # REGRESSIONTEST_DOWNLOAD, which doesn't work until that tarball has
- # been placed on the server.
+set(REGRESSIONTEST_MD5SUM "366438549270d005fa6def6e56ca0256")
math(EXPR GMX_VERSION_NUMERIC
"${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_PATCH}")
set(GMX_API_VERSION ${GMX_VERSION_NUMERIC})
+ # If run with cmake -P from releng scripts, print out necessary version info
+ # as JSON.
+ if (CMAKE_SCRIPT_MODE_FILE)
+ message("{ \"version\": \"${GMX_VERSION_STRING}\", \"regressiontest-md5sum\": \"${REGRESSIONTEST_MD5SUM}\" }")
+ return()
+ endif()
+
#####################################################################
# git version info management
# See documentation at the top of the script.
function (gmx_configure_version_file INFILE OUTFILE)
include(CMakeParseArguments)
- set(_options REMOTE_HASH SOURCE_FILE)
+ set(_options REMOTE_HASH)
set(_one_value_args COMMENT TARGET)
set(_multi_value_args EXTRA_VARS)
cmake_parse_arguments(
add_custom_target(${ARG_TARGET} DEPENDS ${OUTFILE} VERBATIM)
gmx_set_custom_target_output(${ARG_TARGET} ${OUTFILE})
endif()
- if (ARG_SOURCE_FILE)
- set_source_files_properties(${OUTFILE} PROPERTIES GENERATED true)
- endif()
endfunction()
add_subdirectory(gmxlib)
add_subdirectory(mdlib)
+add_subdirectory(applied-forces)
add_subdirectory(listed-forces)
add_subdirectory(commandline)
add_subdirectory(domdec)
tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src)
list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES})
-if(GMX_USE_TNG)
- list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES})
- if (NOT GMX_EXTERNAL_TNG)
- tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB})
- endif()
-endif()
-
get_lmfit_properties(LMFIT_SOURCES LMFIT_LIBRARIES_TO_LINK LMFIT_INCLUDE_DIRECTORY LMFIT_INCLUDE_DIR_ORDER)
include_directories(${LMFIT_INCLUDE_DIR_ORDER} SYSTEM "${LMFIT_INCLUDE_DIRECTORY}")
list(APPEND LIBGROMACS_SOURCES ${LMFIT_SOURCES})
set(GENERATED_VERSION_FILE utility/baseversion-gen.c)
gmx_configure_version_file(
utility/baseversion-gen.c.cmakein ${GENERATED_VERSION_FILE}
- REMOTE_HASH SOURCE_FILE)
+ REMOTE_HASH)
list(APPEND LIBGROMACS_SOURCES ${GENERATED_VERSION_FILE})
if (GMX_USE_CUDA)
+ # Work around FindCUDA that prevents using target_link_libraries()
+ # with keywords otherwise...
+ set(CUDA_LIBRARIES PRIVATE ${CUDA_LIBRARIES})
cuda_add_library(libgromacs ${LIBGROMACS_SOURCES})
else()
add_library(libgromacs ${LIBGROMACS_SOURCES})
if (HAS_NO_UNUSED_PARAMETER)
set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-unused-parameter")
endif()
- check_cxx_compiler_flag(-Wno-deprecated-register HAS_NO_DEPRECATED_REGISTER)
- if (HAS_NO_DEPRECATED_REGISTER)
- set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated-register")
- else()
- check_cxx_compiler_flag(-Wno-deprecated HAS_NO_DEPRECATED)
- if (HAS_NO_DEPRECATED)
- set(_scanner_cpp_compiler_flags "${_scanner_cpp_compiler_flags} -Wno-deprecated")
- endif()
- endif()
set_source_files_properties(selection/scanner.cpp PROPERTIES COMPILE_FLAGS "${_scanner_cpp_compiler_flags}")
+gmx_setup_tng_for_libgromacs()
+
target_link_libraries(libgromacs
+ PRIVATE
${EXTRAE_LIBRARIES}
${GMX_EXTRA_LIBRARIES}
- ${TNG_IO_LIBRARIES}
+ ${GMX_COMMON_LIBRARIES}
${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES}
- ${XML_LIBRARIES}
${LMFIT_LIBRARIES_TO_LINK}
${THREAD_LIB} ${GMX_SHARED_LINKER_FLAGS} ${OPENCL_LIBRARIES}
- ${GMX_STDLIB_LIBRARIES})
+ ${GMX_STDLIB_LIBRARIES}
+ PUBLIC
+ ${GMX_PUBLIC_LIBRARIES}
+ )
set_target_properties(libgromacs PROPERTIES
OUTPUT_NAME "gromacs${GMX_LIBS_SUFFIX}"
SOVERSION ${LIBRARY_SOVERSION_MAJOR}
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
- #define YY_FLEX_MINOR_VERSION 5
- #define YY_FLEX_SUBMINOR_VERSION 37
+ #define YY_FLEX_MINOR_VERSION 6
+ #define YY_FLEX_SUBMINOR_VERSION 0
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
/* 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 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) \
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 );
+ #if defined(__GNUC__) && __GNUC__ >= 3
+ __attribute__((__noreturn__))
+ #endif
static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
/* Done after the current pattern has been matched and before the
3, 3, 17, 9, 0
} ;
- static yyconst flex_int32_t yy_ec[256] =
+ static yyconst YY_CHAR yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
} ;
- static yyconst flex_int32_t yy_meta[33] =
+ static yyconst YY_CHAR yy_meta[33] =
{ 0,
1, 1, 2, 1, 1, 1, 1, 1, 3, 4,
1, 1, 1, 4, 4, 1, 4, 4, 4, 4,
4, 1
} ;
- static yyconst flex_int16_t yy_base[80] =
+ static yyconst flex_uint16_t yy_base[80] =
{ 0,
0, 0, 93, 92, 10, 12, 0, 0, 115, 118,
35, 37, 101, 37, 0, 106, 102, 35, 118, 98,
75, 75, 79, 79, 0, 75, 75, 75, 75
} ;
- static yyconst flex_int16_t yy_nxt[151] =
+ static yyconst flex_uint16_t yy_nxt[151] =
{ 0,
10, 11, 12, 13, 14, 15, 16, 10, 17, 18,
19, 20, 21, 22, 22, 23, 24, 25, 22, 22,
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013,2014,2015, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
#line 60 "scanner.l"
#include "gromacs/utility/cstringutil.h"
+ #include "gromacs/utility/stringutil.h"
#include "parser.h"
#include "scanner.h"
// when we have return statements followed by break. Instead, we add breaks
// manually.
#define YY_BREAK
++
++#ifdef __INTEL_COMPILER
++// Ignore unused variables in generated code.
++#pragma warning(disable:593)
++#endif
#define YY_NO_UNISTD_H 1
- #line 564 "scanner.cpp"
-#line 577 "scanner.cpp"
++#line 582 "scanner.cpp"
#define INITIAL 0
#define matchof 1
FILE *_gmx_sel_yyget_in (yyscan_t yyscanner );
- void _gmx_sel_yyset_in (FILE * in_str ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_in (FILE * _in_str ,yyscan_t yyscanner );
FILE *_gmx_sel_yyget_out (yyscan_t yyscanner );
- void _gmx_sel_yyset_out (FILE * out_str ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_out (FILE * _out_str ,yyscan_t yyscanner );
yy_size_t _gmx_sel_yyget_leng (yyscan_t yyscanner );
int _gmx_sel_yyget_lineno (yyscan_t yyscanner );
- void _gmx_sel_yyset_lineno (int line_number ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_lineno (int _line_number ,yyscan_t yyscanner );
int _gmx_sel_yyget_column (yyscan_t yyscanner );
- void _gmx_sel_yyset_column (int column_no ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_column (int _column_no ,yyscan_t yyscanner );
/* Macros after this point can all be overridden by user definitions in
* section 1.
#endif
#endif
+ #ifndef YY_NO_UNPUT
+
static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
+ #endif
+
#ifndef yytext_ptr
static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
#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. */
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
- #define YY_BREAK break;
+ #define YY_BREAK /*LINTED*/break;
#endif
#define YY_RULE_SETUP \
*/
YY_DECL
{
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
+ yy_state_type yy_current_state;
+ char *yy_cp, *yy_bp;
+ int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- #line 98 "scanner.l"
+ 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 ) {
+ _gmx_sel_yyensure_buffer_stack (yyscanner);
+ YY_CURRENT_BUFFER_LVALUE =
+ _gmx_sel_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
+ }
+
+ _gmx_sel_yy_load_buffer_state(yyscanner );
+ }
+
+ {
-#line 99 "scanner.l"
++#line 104 "scanner.l"
}
- #line 826 "scanner.cpp"
-
- 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;
-#line 875 "scanner.cpp"
++#line 880 "scanner.cpp"
- if ( ! YY_CURRENT_BUFFER ) {
- _gmx_sel_yyensure_buffer_stack (yyscanner);
- YY_CURRENT_BUFFER_LVALUE =
- _gmx_sel_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
- }
-
- _gmx_sel_yy_load_buffer_state(yyscanner );
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
+ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
yy_cp = yyg->yy_c_buf_p;
yy_match:
do
{
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ 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;
case 1:
YY_RULE_SETUP
- #line 131 "scanner.l"
-#line 132 "scanner.l"
++#line 137 "scanner.l"
break;
YY_BREAK
case 2:
YY_RULE_SETUP
- #line 132 "scanner.l"
-#line 133 "scanner.l"
++#line 138 "scanner.l"
{ yylval->i = strtol(yytext, NULL, 10); ADD_TOKEN; return TOK_INT; }
YY_BREAK
case 3:
YY_RULE_SETUP
- #line 133 "scanner.l"
-#line 134 "scanner.l"
++#line 139 "scanner.l"
{ yylval->r = strtod(yytext, NULL); ADD_TOKEN; return TOK_REAL; }
YY_BREAK
case 4:
YY_RULE_SETUP
- #line 134 "scanner.l"
-#line 135 "scanner.l"
++#line 140 "scanner.l"
{ yylval->str = gmx_strndup(yytext+1, yyleng-2); ADD_TOKEN; return STR; }
YY_BREAK
case 5:
/* rule 5 can match eol */
YY_RULE_SETUP
- #line 136 "scanner.l"
-#line 137 "scanner.l"
++#line 142 "scanner.l"
{ _gmx_sel_lexer_add_token(yylloc, " ", 1, state); break; }
YY_BREAK
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
- #line 137 "scanner.l"
-#line 138 "scanner.l"
++#line 143 "scanner.l"
{
if (yytext[0] == ';' || state->statusWriter != NULL)
{
- rtrim(state->pselstr);
+ state->pselstr = gmx::stripString(state->pselstr);
state->bCmdStart = true;
return CMD_SEP;
}
}
YY_BREAK
case YY_STATE_EOF(cmdstart):
- #line 151 "scanner.l"
-#line 152 "scanner.l"
++#line 157 "scanner.l"
{ state->bCmdStart = true; yyterminate(); }
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(matchof):
case YY_STATE_EOF(matchbool):
- #line 152 "scanner.l"
-#line 153 "scanner.l"
++#line 158 "scanner.l"
{ state->bCmdStart = true; return CMD_SEP; }
YY_BREAK
case 7:
YY_RULE_SETUP
- #line 155 "scanner.l"
-#line 156 "scanner.l"
++#line 161 "scanner.l"
{ ADD_TOKEN; yylval->i = 1; return TOK_INT; }
YY_BREAK
case 8:
YY_RULE_SETUP
- #line 156 "scanner.l"
-#line 157 "scanner.l"
++#line 162 "scanner.l"
{ ADD_TOKEN; yylval->i = 0; return TOK_INT; }
YY_BREAK
case 9:
YY_RULE_SETUP
- #line 158 "scanner.l"
-#line 159 "scanner.l"
++#line 164 "scanner.l"
{ ADD_TOKEN; return GROUP; }
YY_BREAK
case 10:
YY_RULE_SETUP
- #line 159 "scanner.l"
-#line 160 "scanner.l"
++#line 165 "scanner.l"
{ ADD_TOKEN; return TO; }
YY_BREAK
case 11:
YY_RULE_SETUP
- #line 160 "scanner.l"
-#line 161 "scanner.l"
++#line 166 "scanner.l"
{ ADD_TOKEN; BEGIN(0); return OF; }
YY_BREAK
case 12:
YY_RULE_SETUP
- #line 161 "scanner.l"
-#line 162 "scanner.l"
++#line 167 "scanner.l"
{ ADD_TOKEN; return AND; }
YY_BREAK
case 13:
YY_RULE_SETUP
- #line 162 "scanner.l"
-#line 163 "scanner.l"
++#line 168 "scanner.l"
{ ADD_TOKEN; return OR; }
YY_BREAK
case 14:
YY_RULE_SETUP
- #line 163 "scanner.l"
-#line 164 "scanner.l"
++#line 169 "scanner.l"
{ ADD_TOKEN; return XOR; }
YY_BREAK
case 15:
YY_RULE_SETUP
- #line 164 "scanner.l"
-#line 165 "scanner.l"
++#line 170 "scanner.l"
{ ADD_TOKEN; return NOT; }
YY_BREAK
case 16:
YY_RULE_SETUP
- #line 165 "scanner.l"
-#line 166 "scanner.l"
++#line 171 "scanner.l"
{ yylval->str = gmx_strndup(yytext, yyleng); ADD_TOKEN; return CMP_OP; }
YY_BREAK
case 17:
YY_RULE_SETUP
- #line 167 "scanner.l"
-#line 168 "scanner.l"
++#line 173 "scanner.l"
{ return _gmx_sel_lexer_process_identifier(yylval, yylloc, yytext, yyleng, state); }
YY_BREAK
case 18:
/* rule 18 can match eol */
YY_RULE_SETUP
- #line 169 "scanner.l"
-#line 170 "scanner.l"
++#line 175 "scanner.l"
{ _gmx_sel_lexer_add_token(yylloc, " ", 1, state); break; }
YY_BREAK
case 19:
YY_RULE_SETUP
- #line 170 "scanner.l"
-#line 171 "scanner.l"
++#line 176 "scanner.l"
{ yylval->str = gmx_strndup(yytext, yyleng); ADD_TOKEN; return STR; }
YY_BREAK
case 20:
YY_RULE_SETUP
- #line 171 "scanner.l"
-#line 172 "scanner.l"
++#line 177 "scanner.l"
{ ADD_TOKEN; return yytext[0]; }
YY_BREAK
case 21:
YY_RULE_SETUP
- #line 172 "scanner.l"
-#line 173 "scanner.l"
++#line 178 "scanner.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
- #line 1037 "scanner.cpp"
-#line 1060 "scanner.cpp"
++#line 1065 "scanner.cpp"
case YY_END_OF_BUFFER:
{
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
+ } /* end of user's declarations */
} /* end of _gmx_sel_yylex */
/* yy_get_next_buffer - try to read in a new buffer
static int yy_get_next_buffer (yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- register char *source = yyg->yytext_ptr;
- register int number_to_move, i;
+ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ char *source = yyg->yytext_ptr;
+ yy_size_t 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] )
/* 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;
+ number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
{
- register yy_state_type yy_current_state;
- register char *yy_cp;
+ 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 )
{
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ 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;
*/
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
{
- register int yy_is_jam;
+ int yy_is_jam;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
- register char *yy_cp = yyg->yy_c_buf_p;
+ char *yy_cp = yyg->yy_c_buf_p;
- register YY_CHAR yy_c = 1;
+ YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
{
yyg->yy_last_accepting_state = yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
}
- static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
+ #ifndef YY_NO_UNPUT
+
+ static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
{
- register char *yy_cp;
+ char *yy_cp;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
yy_cp = yyg->yy_c_buf_p;
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
- register yy_size_t number_to_move = yyg->yy_n_chars + 2;
- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ yy_size_t number_to_move = yyg->yy_n_chars + 2;
+ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
- register char *source =
+ char *source =
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
yyg->yy_c_buf_p = yy_cp;
}
+ #endif
+
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput (yyscan_t yyscanner)
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in _gmx_sel_yy_create_buffer()" );
- b->yy_buf_size = size;
+ b->yy_buf_size = (yy_size_t)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.
* 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;
+ num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
yyg->yy_buffer_stack = (struct yy_buffer_state**)_gmx_sel_yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
, yyscanner);
if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
/* Increase the buffer to prepare for a possible push. */
- int grow_size = 8 /* arbitrary grow size */;
+ 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**)_gmx_sel_yyrealloc
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
{
- (void) fprintf( stderr, "%s\n", msg );
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+ (void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
}
/** Set the current line number.
- * @param line_number
+ * @param _line_number line number
* @param yyscanner The scanner object.
*/
- void _gmx_sel_yyset_lineno (int line_number , yyscan_t yyscanner)
+ void _gmx_sel_yyset_lineno (int _line_number , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "_gmx_sel_yyset_lineno called with no buffer" );
- yylineno = line_number;
+ yylineno = _line_number;
}
/** Set the current column.
- * @param line_number
+ * @param _column_no column number
* @param yyscanner The scanner object.
*/
- void _gmx_sel_yyset_column (int column_no , yyscan_t yyscanner)
+ void _gmx_sel_yyset_column (int _column_no , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "_gmx_sel_yyset_column called with no buffer" );
- yycolumn = column_no;
+ yycolumn = _column_no;
}
/** Set the input stream. This does not discard the current
* input buffer.
- * @param in_str A readable stream.
+ * @param _in_str A readable stream.
* @param yyscanner The scanner object.
* @see _gmx_sel_yy_switch_to_buffer
*/
- void _gmx_sel_yyset_in (FILE * in_str , yyscan_t yyscanner)
+ void _gmx_sel_yyset_in (FILE * _in_str , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yyin = in_str ;
+ yyin = _in_str ;
}
- void _gmx_sel_yyset_out (FILE * out_str , yyscan_t yyscanner)
+ void _gmx_sel_yyset_out (FILE * _out_str , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yyout = out_str ;
+ yyout = _out_str ;
}
int _gmx_sel_yyget_debug (yyscan_t yyscanner)
return yy_flex_debug;
}
- void _gmx_sel_yyset_debug (int bdebug , yyscan_t yyscanner)
+ void _gmx_sel_yyset_debug (int _bdebug , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yy_flex_debug = bdebug ;
+ yy_flex_debug = _bdebug ;
}
/* Accessor methods for yylval and yylloc */
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
{
- register int i;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+
+ int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
{
- register int n;
+ int n;
for ( n = 0; s[n]; ++n )
;
void *_gmx_sel_yyalloc (yy_size_t size , yyscan_t yyscanner)
{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
return (void *) malloc( size );
}
void *_gmx_sel_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
void _gmx_sel_yyfree (void * ptr , yyscan_t yyscanner)
{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
free( (char *) ptr ); /* see _gmx_sel_yyrealloc() for (char *) cast */
}
#define YYTABLES_NAME "yytables"
- #line 172 "scanner.l"
-#line 173 "scanner.l"
++#line 178 "scanner.l"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013,2014,2015, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
}
%{
#include "gromacs/utility/cstringutil.h"
+ #include "gromacs/utility/stringutil.h"
#include "parser.h"
#include "scanner.h"
// when we have return statements followed by break. Instead, we add breaks
// manually.
#define YY_BREAK
++
++#ifdef __INTEL_COMPILER
++// Ignore unused variables in generated code.
++#pragma warning(disable:593)
++#endif
%}
INTEGER [[:digit:]]+
";"|\n {
if (yytext[0] == ';' || state->statusWriter != NULL)
{
- rtrim(state->pselstr);
+ state->pselstr = gmx::stripString(state->pselstr);
state->bCmdStart = true;
return CMD_SEP;
}
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
- #define YY_FLEX_MINOR_VERSION 5
- #define YY_FLEX_SUBMINOR_VERSION 37
+ #define YY_FLEX_MINOR_VERSION 6
+ #define YY_FLEX_SUBMINOR_VERSION 0
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
/* 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
void *_gmx_sel_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
void _gmx_sel_yyfree (void * ,yyscan_t yyscanner );
- #define _gmx_sel_yywrap(yyscanner) 1
+ #define _gmx_sel_yywrap(yyscanner) (/*CONSTCOND*/1)
#define YY_SKIP_YYWRAP
#define yytext_ptr yytext_r
FILE *_gmx_sel_yyget_in (yyscan_t yyscanner );
- void _gmx_sel_yyset_in (FILE * in_str ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_in (FILE * _in_str ,yyscan_t yyscanner );
FILE *_gmx_sel_yyget_out (yyscan_t yyscanner );
- void _gmx_sel_yyset_out (FILE * out_str ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_out (FILE * _out_str ,yyscan_t yyscanner );
yy_size_t _gmx_sel_yyget_leng (yyscan_t yyscanner );
int _gmx_sel_yyget_lineno (yyscan_t yyscanner );
- void _gmx_sel_yyset_lineno (int line_number ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_lineno (int _line_number ,yyscan_t yyscanner );
int _gmx_sel_yyget_column (yyscan_t yyscanner );
- void _gmx_sel_yyset_column (int column_no ,yyscan_t yyscanner );
+ void _gmx_sel_yyset_column (int _column_no ,yyscan_t yyscanner );
/* Macros after this point can all be overridden by user definitions in
* section 1.
/* 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. */
#undef YY_DECL
#endif
- #line 172 "scanner.l"
-#line 173 "scanner.l"
++#line 178 "scanner.l"
- #line 350 "scanner_flex.h"
+ #line 363 "scanner_flex.h"
#undef _gmx_sel_yyIN_HEADER
#endif /* _gmx_sel_yyHEADER_H */