Fix most doxygen warnings.
authorTeemu Murtola <teemu.murtola@gmail.com>
Fri, 29 Jun 2012 12:07:49 +0000 (15:07 +0300)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Wed, 4 Jul 2012 03:28:48 +0000 (05:28 +0200)
This makes it much more convenient to work locally with Doxygen.  Even
though Jenkins ignored these warnings, if you ran Doxygen locally, it
produced a long list of warnings in the log file, making it difficult to
spot if new warnings had appeared.

Also improved the Doxygen configuration files to have common settings in
a shared file that is then included from the actual configuration files.

Change-Id: Ic57576e2cb89f6d0e5929981553b48a61435c26c

25 files changed:
CMakeLists.txt
Doxyfile-common.cmakein [new file with mode: 0644]
Doxyfile-lib.cmakein
Doxyfile-user.cmakein
Doxyfile.cmakein
src/gromacs/gmxlib/string2.c
src/gromacs/legacyheaders/gmx_fatal.h
src/gromacs/legacyheaders/gmx_sort.h
src/gromacs/legacyheaders/pull_rotation.h
src/gromacs/legacyheaders/string2.h
src/gromacs/legacyheaders/thread_mpi/atomic.h
src/gromacs/legacyheaders/thread_mpi/collective.h
src/gromacs/legacyheaders/thread_mpi/event.h
src/gromacs/legacyheaders/thread_mpi/hwinfo.h
src/gromacs/legacyheaders/thread_mpi/list.h
src/gromacs/legacyheaders/thread_mpi/numa_malloc.h
src/gromacs/legacyheaders/thread_mpi/threads.h
src/gromacs/legacyheaders/thread_mpi/tmpi.h
src/gromacs/options/optionstoragetemplate.h
src/gromacs/selection/parser.cpp
src/gromacs/selection/parser.h
src/gromacs/selection/parser.y
src/gromacs/selection/scanner_internal.cpp
src/gromacs/selection/selhelp.cpp
src/testutils/refdata.h

index ef605aef22a115c4a1b50b26053143d86babb78b..9225a3dc24c27f5ee323975a07f8dc0fba5f537e 100644 (file)
@@ -997,6 +997,8 @@ if (DOXYGEN_FOUND)
         SET(NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN
             "${NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN} \\\n                         ${NB_KERNEL_DIR}")
     ENDFOREACH(NB_KERNEL_DIR)
+    CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Doxyfile-common.cmakein
+                   ${CMAKE_BINARY_DIR}/Doxyfile-common)
     CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Doxyfile.cmakein
                    ${CMAKE_BINARY_DIR}/Doxyfile)
     CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Doxyfile-lib.cmakein
diff --git a/Doxyfile-common.cmakein b/Doxyfile-common.cmakein
new file mode 100644 (file)
index 0000000..c291224
--- /dev/null
@@ -0,0 +1,34 @@
+PROJECT_NAME           = @CMAKE_PROJECT_NAME@
+PROJECT_NUMBER         = @PROJECT_VERSION@
+OUTPUT_DIRECTORY       = doxygen-doc
+INPUT                  = @CMAKE_SOURCE_DIR@/src \
+                         @CMAKE_SOURCE_DIR@/share/template
+EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
+RECURSIVE              = YES
+EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
+                         @CMAKE_SOURCE_DIR@/src/external \
+                         @CMAKE_SOURCE_DIR@/src/gromacs/legacyheaders/thread_mpi/atomic \
+                         @CMAKE_SOURCE_DIR@/src/gromacs/selection/scanner.cpp @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
+EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
+STRIP_FROM_INC_PATH    = @CMAKE_SOURCE_DIR@/src
+INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
+                         @CMAKE_SOURCE_DIR@/src/gromacs/legacyheaders
+HAVE_DOT               = @DOXYGEN_DOT_FOUND@
+DOT_PATH               = @DOXYGEN_DOT_PATH@
+
+# This is for thread_mpi to #ifdef some code out that should not be documented.
+PREDEFINED             = DOXYGEN
+# This is for parser.cpp to make it produce code that Doxygen understands
+# and that does not have unnecessary function declarations.
+PREDEFINED            += __STDC__ YYMALLOC=malloc YYFREE=free
+
+JAVADOC_AUTOBRIEF      = YES
+BUILTIN_STL_SUPPORT    = YES
+INLINE_INHERITED_MEMB  = YES
+SORT_BY_SCOPE_NAME     = YES
+ALPHABETICAL_INDEX     = YES
+SHOW_DIRECTORIES       = YES
+HTML_DYNAMIC_SECTIONS  = YES
+GENERATE_LATEX         = NO
index dceb4e268001607a53c384ac4624189b24217c1f..d2c9c504eb53fe839dee8d1d22dbacfe0a3e5d59 100644 (file)
@@ -1,20 +1,4 @@
-PROJECT_NAME           = @CMAKE_PROJECT_NAME@
-PROJECT_NUMBER         = @PROJECT_VERSION@
-OUTPUT_DIRECTORY       = doxygen-doc
-INPUT                  = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/share/template
-EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
-RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
-                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
-EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-STRIP_FROM_INC_PATH    = @CMAKE_SOURCE_DIR@/src
-INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/src/gromacs/legacyheaders
-HAVE_DOT               = @DOXYGEN_DOT_FOUND@
-DOT_PATH               = @DOXYGEN_DOT_PATH@
+@INCLUDE               = Doxyfile-common
 
 ENABLED_SECTIONS       = libapi
 INTERNAL_DOCS          = NO
@@ -22,15 +6,6 @@ HIDE_UNDOC_CLASSES     = YES
 WARN_LOGFILE           = doxygen-doc/doxygen-lib.log
 HTML_OUTPUT            = html-lib
 
-JAVADOC_AUTOBRIEF      = YES
-BUILTIN_STL_SUPPORT    = YES
-INLINE_INHERITED_MEMB  = YES
-SORT_BY_SCOPE_NAME     = YES
-ALPHABETICAL_INDEX     = YES
-SHOW_DIRECTORIES       = YES
-HTML_DYNAMIC_SECTIONS  = YES
-GENERATE_LATEX         = NO
-
 ALIASES               += inpublicapi="\ingroup group_publicapi"
 ALIASES               += inlibraryapi="\ingroup group_libraryapi"
 ALIASES               += addtopublicapi="\addtogroup group_publicapi"
index c97198c0f3e012d451aef6104088705248a41151..b0b6c7132e6d9f392437798068441e824bc401bf 100644 (file)
@@ -1,20 +1,4 @@
-PROJECT_NAME           = @CMAKE_PROJECT_NAME@
-PROJECT_NUMBER         = @PROJECT_VERSION@
-OUTPUT_DIRECTORY       = doxygen-doc
-INPUT                  = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/share/template
-EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
-RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
-                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
-EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-STRIP_FROM_INC_PATH    = @CMAKE_SOURCE_DIR@/src
-INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/src/gromacs/legacyheaders
-HAVE_DOT               = @DOXYGEN_DOT_FOUND@
-DOT_PATH               = @DOXYGEN_DOT_PATH@
+@INCLUDE               = Doxyfile-common
 
 ENABLED_SECTIONS       =
 INTERNAL_DOCS          = NO
@@ -23,15 +7,6 @@ HIDE_FRIEND_COMPOUNDS  = YES
 WARN_LOGFILE           = doxygen-doc/doxygen-user.log
 HTML_OUTPUT            = html-user
 
-JAVADOC_AUTOBRIEF      = YES
-BUILTIN_STL_SUPPORT    = YES
-INLINE_INHERITED_MEMB  = YES
-SORT_BY_SCOPE_NAME     = YES
-ALPHABETICAL_INDEX     = YES
-SHOW_DIRECTORIES       = YES
-HTML_DYNAMIC_SECTIONS  = YES
-GENERATE_LATEX         = NO
-
 ALIASES               += inpublicapi="\ingroup group_publicapi"
 ALIASES               += inlibraryapi="\ingroup group_libraryapi"
 ALIASES               += addtopublicapi="\addtogroup group_publicapi"
index c9135434af6586ff3f008ee8e4518f83a8fd58aa..8acd499faf9e0522b8fb1860705dee1e03256be8 100644 (file)
@@ -1,38 +1,15 @@
-PROJECT_NAME           = @CMAKE_PROJECT_NAME@
-PROJECT_NUMBER         = @PROJECT_VERSION@
-OUTPUT_DIRECTORY       = doxygen-doc
-INPUT                  = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/share/template
-EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@
-RECURSIVE              = YES
-EXCLUDE                = @CMAKE_SOURCE_DIR@/src/contrib \
-                         @CMAKE_SOURCE_DIR@/src/external @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
-EXCLUDE_SYMBOLS        = YY* yy* _gmx_sel_yy*
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-STRIP_FROM_INC_PATH    = @CMAKE_SOURCE_DIR@/src
-INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/src \
-                         @CMAKE_SOURCE_DIR@/src/gromacs/legacyheaders
-HAVE_DOT               = @DOXYGEN_DOT_FOUND@
-DOT_PATH               = @DOXYGEN_DOT_PATH@
+@INCLUDE               = Doxyfile-common
 
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
-PREDEFINED             = F77_FUNC(name,NAME)=name
+PREDEFINED            += F77_FUNC(name,NAME)=name
 
 ENABLED_SECTIONS       = libapi internal
 INTERNAL_DOCS          = YES
 HIDE_UNDOC_CLASSES     = YES
 WARN_LOGFILE           = doxygen-doc/doxygen.log
 
-JAVADOC_AUTOBRIEF      = YES
-BUILTIN_STL_SUPPORT    = YES
 INLINE_INHERITED_MEMB  = NO  # Makes it easier to go through all documentation
-SORT_BY_SCOPE_NAME     = YES
-ALPHABETICAL_INDEX     = YES
-SHOW_DIRECTORIES       = YES
-HTML_DYNAMIC_SECTIONS  = YES
-GENERATE_LATEX         = NO
 
 ALIASES               += inpublicapi="\ingroup group_publicapi"
 ALIASES               += inlibraryapi="\ingroup group_libraryapi"
index 9e2ccc29fe470ef8ac568f820e2e509177049af5..36e177b14dd76ba164809b2cdb9b7018526d72f5 100644 (file)
@@ -71,9 +71,6 @@
 #include "futil.h"
 
 int continuing(char *s)
-/* strip trailing spaces and if s ends with a CONTINUE remove that too.
- * returns TRUE if s ends with a CONTINUE, FALSE otherwise.
- */
 {
   int sl;
   assert(s);
@@ -91,10 +88,6 @@ int continuing(char *s)
 
 
 char *fgets2(char *line, int n, FILE *stream)
-/* This routine reads a string from stream of max length n
- * and zero terminated, without newlines
- * line should be long enough (>= n)
- */
 {
   char *c;
   if (fgets(line,n,stream) == NULL) {
@@ -336,15 +329,6 @@ gmx_strndup(const char *src, int n)
     return dest;
 }
 
-/*!
- * \param[in] pattern  Pattern to match against.
- * \param[in] str      String to match.
- * \returns   0 on match, GMX_NO_WCMATCH if there is no match.
- *
- * Matches \p str against \p pattern, which may contain * and ? wildcards.
- * All other characters are matched literally.
- * Currently, it is not possible to match literal * or ?.
- */
 int
 gmx_wcmatch(const char *pattern, const char *str)
 {
index df1bda65b5af0c004a9e3fe626418739bfb2e53e..5027a3e34261047ae653f60d06d017e9a41053e4 100644 (file)
@@ -50,8 +50,10 @@ extern "C" {
 #define __has_feature(x) 0 // Compatibility with non-clang compilers.
 #endif
 
-/** \def GMX_ATTRIBUTE_NORETURN \brief Indicate that a function is not
- * expected to return.
+/*! \def GMX_ATTRIBUTE_NORETURN
+ * \brief
+ * Indicate that a function is not expected to return.
+ *
  * WARNING: In general this flag should not be used for compiler
  * optimizations, since set_gmx_error_handler can be set to a
  * handler which does not quit.
index c1ef471b90232f32ce6d6914befc6101258ff773..2468f525a61cb9edce524560e1dbb369362b5b2b 100644 (file)
  * And Hey:
  * Gnomes, ROck Monsters And Chili Sauce
  */
-#ifndef _GMX_SORT_H_
-#define _GMX_SORT_H_
-
-/** @file gmx_sort.h
- *
- *  @brief Portable implementation of thread-safe sort routines.
+/*! \internal \file
+ * \brief
+ * Portable implementation of thread-safe sort routines.
  *
+ * This module provides a Gromacs version of the qsort() routine defined.
+ * It is not highly optimized, but it is thread safe, i.e. multiple threads
+ * can simultaneously call gmx_qsort() with different data.
  *
- *  This module provides a Gromacs version of the qsort() routine defined.
- *  It is not highly optimized, but it is thread safe, i.e. multiple threads
- *  can simultaneously call gmx_qsort with different data.
+ * The rational is that some implementations of qsort() are not threadsafe.
+ * For instance qsort in glibc contains a bug which makes it non-threadsafe:
+ * http://sources.redhat.com/bugzilla/show_bug.cgi?id=11655
+ * On the other hand, system qsort might be faster than our own.
  */
+#ifndef GMX_SORT_H
+#define GMX_SORT_H
 
 #include <stdlib.h>
 
@@ -38,39 +41,40 @@ extern "C"
 } /* fixes auto-indentation problems */
 #endif
 
-
-/*
- *  @param base    Pointer to first element in list to sort
- *  @param nmemb   Number of elements in list
- *  @param size    Size in bytes of each element
- *  @param compar  Comparison function that takes two pointers to elements
- *                 being compared as arguments. The function should return an
- *                 integer less than, equal to, or greater than zero if the 
- *                 first argument is considered to be respectively less than,
- *                 equal to, or greater than the second.
+/*! \brief
+ * Portable thread-safe sort routine.
+ *
+ * \param base    Pointer to first element in list to sort
+ * \param nmemb   Number of elements in list
+ * \param size    Size in bytes of each element
+ * \param compar  Comparison function that takes two pointers to elements
+ *                being compared as arguments.  The function should return an
+ *                integer less than, equal to, or greater than zero if the
+ *                first argument is considered to be respectively less than,
+ *                equal to, or greater than the second.
  */
 void
-gmx_qsort(void *           base, 
-          size_t           nmemb, 
-          size_t           size, 
+gmx_qsort(void *           base,
+          size_t           nmemb,
+          size_t           size,
           int            (*compar)(const void *, const void *));
 
 
-#ifdef GMX_THREAD_MPI
-/* Some implementations of qsort are not threadsafe.
- * For instance qsort in glibc contains a bug which makes it non-threadsafe:
- * http://sources.redhat.com/bugzilla/show_bug.cgi?id=11655
+/*! \def qsort_threadsafe
+ * \brief
+ * Thread-safe qsort.
+ *
+ * Expands to gmx_qsort() if Gromacs is built with threading, or system qsort()
+ * otherwise.
  */
+#ifdef GMX_THREAD_MPI
 #define qsort_threadsafe gmx_qsort
 #else
-/* System qsort might be faster than our own */
 #define qsort_threadsafe qsort
 #endif
 
-
 #ifdef __cplusplus
 }
 #endif
 
-
-#endif /* _GMX_SORT_H_ */
+#endif /* GMX_SORT_H */
index 3ba9eb00153dc63ee640faeefc6c6e4314881626..b32dd2cf415881fb7eea80b38a55c35904d19818 100644 (file)
@@ -66,8 +66,10 @@ extern "C" {
  *                          of the rotation output files.
  * \param cr                Pointer to MPI communication data.
  * \param x                 The positions of all MD particles.
+ * \param box               Simulation box, needed to make group whole.
  * \param mtop              Molecular topology.
  * \param oenv              Needed to open the rotation output xvgr file.
+ * \param bVerbose          Whether to print extra status information.
  * \param Flags             Flags passed over from main, used to determine
  *                          whether or not we are doing a rerun.
  */
index a422a5823c18dea2be1b86358a15dd37e20f66e6..4c6d963e7e21adafe81b8cb3fb30dc4e6a097ff0 100644 (file)
@@ -54,7 +54,6 @@
 #include <errno.h>
 #include "../utility/gmx_header_config.h"
 
-/*#include "typedefs.h"*/
 #include "types/simple.h"
 
 /* Suppress Cygwin compiler warnings from using newlib version of
 extern "C" {
 #endif
 
+/** Continuation character. */
 #define CONTINUE    '\\'
+/** Comment sign to use. */
 #define COMMENTSIGN ';'
 
+/*! \brief
+ * Strip trailing spaces and if s ends with a ::CONTINUE remove that too.
+ *
+ * \returns TRUE if s ends with a CONTINUE, FALSE otherwise.
+ */
 int continuing(char *s);
 
+/*! \brief
+ * Reads a line from a stream.
+ *
+ * This routine reads a string from stream of max length n
+ * and zero terminated, without newlines.
+ * \p s should be long enough (>= \p n)
+ */
 char *fgets2(char *s, int n, FILE *stream);
 
-void strip_comment (char *line);
-
-int break_line (char *line,
-                      char *variable,
-                      char *value);
+/** Remove portion of a line after a ::COMMENTSIGN.  */
+void strip_comment(char *line);
 
-void upstring (char *str);
+/** Make a string uppercase. */
+void upstring(char *str);
 
-void ltrim (char *str);
+/** Remove leading whitespace from a string. */
+void ltrim(char *str);
 
-void rtrim (char *str);
+/** Remove trailing whitespace from a string. */
+void rtrim(char *str);
 
-void trim (char *str);
+/** Remove leading and trailing whitespace from a string. */
+void trim(char *str);
 
-void nice_header (FILE *out,const char *fn);
+/** Prints creation time stamp and user information into a file as comments. */
+void nice_header(FILE *out, const char *fn);
 
+/** Version of gmx_strcasecmp() that also ignores '-' and '_'. */
 int gmx_strcasecmp_min(const char *str1, const char *str2);
+/** Version of gmx_strncasecmp() that also ignores '-' and '_'. */
 int gmx_strncasecmp_min(const char *str1, const char *str2, int n);
-/* This funny version of strcasecmp, is not only case-insensitive,
- * but also ignores '-' and '_'.
- */
 
+/** Case-insensitive strcmp(). */
 int gmx_strcasecmp(const char *str1, const char *str2);
+/** Case-insensitive strncmp(). */
 int gmx_strncasecmp(const char *str1, const char *str2, int n);
 
+/** Creates a duplicate of \p src. */
 char *gmx_strdup(const char *src);
+/** Duplicates first \p n characters of \p src. */
 char *gmx_strndup(const char *src, int n);
-    
-/** Pattern matcing with wildcards. */
-int gmx_wcmatch(const char *pattern, const char *src);
+
+/*! \brief
+ * Pattern matcing with wildcards.
+ *
+ * \param[in] pattern  Pattern to match against.
+ * \param[in] str      String to match.
+ * \returns   0 on match, GMX_NO_WCMATCH if there is no match.
+ *
+ * Matches \p str against \p pattern, which may contain * and ? wildcards.
+ * All other characters are matched literally.
+ * Currently, it is not possible to match literal * or ?.
+ */
+int gmx_wcmatch(const char *pattern, const char *str);
 
 /** Return value for gmx_wcmatch() when there is no match. */
 #define GMX_NO_WCMATCH 1
 
-
-/* this is our implementation of strsep, the thread-safe replacement for
-   strtok */
+/** Our implementation of strsep, the thread-safe replacement for strtok. */
 char *gmx_strsep(char **stringp, const char *delim);
 
-
-char *wrap_lines(const char *buf,int line_width, int indent,
-                       gmx_bool bIndentFirst);
-/* wraps lines at 'linewidth', indenting all following
- * lines by 'indent' spaces. A temp buffer is allocated and returned,
- * which can be disposed of if no longer needed.
- * If !bIndentFirst, then the first line will not be indented, only 
+/*! \brief
+ * Wraps lines, optionally indenting lines.
+ *
+ * Wraps lines at \p linewidth, indenting all following lines by \p indent
+ * spaces.  A temp buffer is allocated and returned, which can be disposed of
+ * if no longer needed.
+ * If \p bIndentFirst is FALSE, then the first line will not be indented, only
  * the lines that are created due to wapping.
  */
+char *wrap_lines(const char *buf,int line_width, int indent,
+                 gmx_bool bIndentFirst);
 
-
+/** Implementation of the well-known Perl function split. */
 char **split(char sep,const char *str);
-/* Implementation of the well-known Perl function split */
 
+/*! \brief
+ * Convert a string to gmx_large_int_t.
+ *
+ * This method works as the standard library function strtol(), except that it
+ * does not support different bases.
+ *
+ * \attention
+ * The following differences are present from the standard behavior:
+ *  - \p endptr cannot be NULL.
+ *  - If an overflow occurs, returns zero and \p *endptr will equal \p str.
+ *    errno is still set to ERANGE.
+ */
 gmx_large_int_t str_to_large_int_t(const char *str, char **endptr);
 
 #ifdef GMX_NATIVE_WINDOWS
index 47401e14c043bef930449e573ba2e23536b45757..4fccd33d72a5459180c557c80169f3423bb38cac 100644 (file)
@@ -151,6 +151,7 @@ extern "C"
 #error No atomic operations implemented for this cpu/compiler combination. 
 #endif
 
+/** Indicates that no support for atomic operations is present. */
 #define TMPI_NO_ATOMICS
 
 
@@ -256,7 +257,7 @@ static tMPI_Thread_mutex_t tMPI_Atomic_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
  */
 typedef struct tMPI_Atomic
 {
-    int value;  
+    int value;  /**< The atomic value. */
 }
 tMPI_Atomic_t;
 
@@ -272,7 +273,7 @@ tMPI_Atomic_t;
 */
 typedef struct tMPI_Atomic_ptr
 {
-    void* value;  
+    void* value;  /**< The atomic pointer value. */
 }
 tMPI_Atomic_ptr_t;
 
index 11bc52ce692716fe81e87d9df2b4618db920f0df..302db793c73d0cb37a2c7241d034d80232b1489c 100644 (file)
@@ -113,9 +113,10 @@ typedef struct
     tMPI_Comm comm;
 } tMPI_Reduce_req;
 
+/** Allocate data structure for asynchronous reduce. */
 tMPI_Reduce_req *tMPI_Reduce_req_alloc(tMPI_Comm comm);
 #if 0
-/** Execute fast a asynchronious reduce over comm. 
+/** Execute fast a asynchronous reduce over comm.
 
   Reduces array input with supplied funtion. This function may return before 
   the input array is ready to be written to again; to check for its completion,
index a8faa85cbefc88cd76242b2b5e871e3256f21311..31ac7bca068d339ede2e89476e2170851d31e597 100644 (file)
@@ -85,7 +85,7 @@ void tMPI_Event_destroy(tMPI_Event *ev);
 
    Sets the number of events that had occurred during the wait in N. 
    \param ev The event structure to wait on.
-   \ret      The number of events that have occurred at function 
+   \returns  The number of events that have occurred at function
              return time. */
 int tMPI_Event_wait(tMPI_Event *ev);
 
index cb49abf1e44a04bb7da1a660295c790b062a5543..7a17bc473c5c5ecf4bb6c184599b4cfaf2f70aa3 100644 (file)
@@ -48,9 +48,9 @@ files.
 
     Returns the total number of cores and SMT threads that can run.
 
-    \ret The maximum number of threads that can run simulataneously. If this
-         number cannot be determined for the current architecture, -1 is 
-         returned.
+    \returns The maximum number of threads that can run simulataneously.
+         If this number cannot be determined for the current architecture,
+         -1 is returned.
   */
 int tMPI_Get_hw_nthreads(void);
 
@@ -62,7 +62,7 @@ int tMPI_Get_hw_nthreads(void);
     equal to the number of hardware threads available, or 1 if the number
     can't be determined, or if there are no atomics for this platform.
 
-    \ret The maximum number of threads to run on.
+    \returns The maximum number of threads to run on.
   */
 int tMPI_Get_recommended_nthreads(void);
 
index a27247805315d395b43dc551e3f6be39eb16a086..5cad8275eada1a1b99b941ede1badd6b50e4c696 100644 (file)
@@ -62,14 +62,14 @@ extern "C"
   Is a list with push, pop and detach operations */
 typedef struct 
 {
-    tMPI_Atomic_ptr_t head;
+    tMPI_Atomic_ptr_t head;          /**< Pointer to the top stack element. */
 } tMPI_Stack;
 
 /**  A single element in stack */
 typedef struct tMPI_Stack_element
 {
-    struct tMPI_Stack_element *next; /*< pointer to the next stack element */
-    void *data;               /*< pointer to data */
+    struct tMPI_Stack_element *next; /**< Pointer to the next stack element. */
+    void *data;                      /**< Pointer to data. */
 } tMPI_Stack_element;
 
 
@@ -90,8 +90,8 @@ tMPI_Stack_element *tMPI_Stack_detach(tMPI_Stack *st);
 
 
 
-
-/**  Lock-free double-ended queue (LIFO)
+#if 0
+/**  Lock-free double-ended queue (FIFO)
 
   Is a list with enqueue and dequeue operations */
 typedef struct 
@@ -102,9 +102,9 @@ typedef struct
 /**  A single element in a queue */
 typedef struct tMPI_Queue_element
 {
-    struct tMPI_Queue_element *next,*prev; /*< pointer to the next, prev queue 
-                                               element */
-    void *data;                     /*< pointer to data */
+    struct tMPI_Queue_element *next; /**< Pointer to the next queue element. */
+    struct tMPI_Queue_element *prev; /**< Pointer to the prev queue element. */
+    void *data;                      /**< Pointer to data. */
 } tMPI_Queue_element;
 
 /**  Initialize a queue */
@@ -135,8 +135,10 @@ typedef struct tMPI_List_element
     struct tMPI_List_element *next, *prev;
     void *data;
 } tMPI_List_element;
+
+/**  Initialize a list */
 void tMPI_List_init(tMPI_List *l);
+/**  Deallocates a list */
 void tMPI_List_destroy(tMPI_List *l);
 
 tMPI_List_element* tMPI_List_first(tMPI_List *l);
@@ -149,6 +151,7 @@ void tMPI_List_add(tMPI_List *l, tMPI_List_element *le);
 void tMPI_List_insert(tMPI_List *l, tMPI_List_element *after, 
                       tMPI_List_element *le);
 void tMPI_List_remove(tMPI_List *l, tMPI_List_element *le);
+#endif
 
 
 #ifdef __cplusplus
index 526392e4a87c10d28e25c43df8dd146230ee2113..63218bb02320c3bc979dc4e1bab3f82a9c8a81c3 100644 (file)
@@ -39,7 +39,7 @@ files.
 #ifndef TMPI_NUMA_MALLOC_H_
 #define TMPI_NUMA_MALLOC_H_
 
-/*! \file numa_alloc.h
+/*! \file
   
     \brief NUMA aware memory allocators.
   
index cd401698f3d355917131cac1df7b1bf3acbe16bb..32d18af4499ac6d1388f33c90c095766d060caf2 100644 (file)
@@ -102,8 +102,8 @@ typedef struct tMPI_Thread* tMPI_Thread_t;
  */
 typedef struct 
 {
-    tMPI_Atomic_t initialized;
-    struct tMPI_Mutex* mutex;
+    tMPI_Atomic_t initialized; /*!< Whether \a mutex has been initialized. */
+    struct tMPI_Mutex* mutex;  /*!< Actual mutex data structure. */
 }  tMPI_Thread_mutex_t;
 /*! \brief Static initializer for tMPI_Thread_mutex_t
  *
@@ -124,8 +124,8 @@ typedef struct
  */
 typedef struct 
 {
-    tMPI_Atomic_t initialized;
-    struct tMPI_Thread_key *key;
+    tMPI_Atomic_t initialized; /*!< Whether \a key has been initialized. */
+    struct tMPI_Thread_key *key; /*!< Actual key data structure. */
 } tMPI_Thread_key_t;
 
 
@@ -147,7 +147,7 @@ typedef struct
  */
 typedef struct 
 {
-    tMPI_Atomic_t once;
+    tMPI_Atomic_t once; /*!< Whether the operation has been performed. */
 } tMPI_Thread_once_t;
 /*! \brief Static initializer for tMPI_Thread_once_t
  *
@@ -177,8 +177,8 @@ typedef struct
  */
 typedef struct 
 {
-    tMPI_Atomic_t initialized;
-    struct tMPI_Thread_cond* condp;
+    tMPI_Atomic_t initialized;      /*!< Whether \a condp has been initialized. */
+    struct tMPI_Thread_cond* condp; /*!< Actual condition variable data structure. */
 } tMPI_Thread_cond_t;
 /*! \brief Static initializer for tMPI_Thread_cond_t
   *
@@ -200,8 +200,8 @@ typedef struct
  */
 typedef struct 
 {
-    tMPI_Atomic_t initialized;
-    struct tMPI_Thread_barrier* barrierp;
+    tMPI_Atomic_t initialized; /*!< Whether \a barrierp has been initialized. */
+    struct tMPI_Thread_barrier* barrierp; /*!< Actual barrier data structure. */
     volatile int threshold; /*!< Total number of members in barrier     */
     volatile int count;     /*!< Remaining count before completion      */
     volatile int cycle;     /*!< Alternating 0/1 to indicate round      */
@@ -238,6 +238,7 @@ enum tMPI_Thread_support
   \param message  format string for error message.
 */
 void tMPI_Fatal_error(const char *file, int line, const char *message, ...);
+/** Convenience macro for the first two arguments to tMPI_Fatal_error(). */
 #define TMPI_FARGS __FILE__,__LINE__
 
 
@@ -260,9 +261,10 @@ enum tMPI_Thread_support tMPI_Thread_support(void);
 
     Returns the total number of cores and SMT threads that can run.
 
-    \ret The maximum number of threads that can run simulataneously. If this
-         number cannot be determined for the current architecture, 0 is 
-         returned. */
+    \returns The maximum number of threads that can run simulataneously.
+        If this number cannot be determined for the current architecture,
+        0 is returned.
+ */
 int tMPI_Thread_get_hw_number(void);
 
 
index c8fb3e174c9d80f6bc1af8d79d08915cccd4569a..f055d68fea0639323f7341a5ff3f233f8566b131 100644 (file)
@@ -936,7 +936,7 @@ int tMPI_Testany(int count, tMPI_Request *array_of_requests,
 /** Wait until some of several messages are transferred. Waits until at least
     one message is transferred.
    
-    \param[in]      count               The number of requests
+    \param[in]      incount             The number of requests
     \param[in,out]  array_of_requests   List of count requests obtained with
                                         tMPI_Isend()/tMPI_Irecv().
     \param[out]     outcount            Number of completed requests
@@ -952,7 +952,7 @@ int tMPI_Waitsome(int incount, tMPI_Request *array_of_requests,
 
 /** Test whether some of several messages are transferred. 
 
-    \param[in]      count               The number of requests
+    \param[in]      incount             The number of requests
     \param[in,out]  array_of_requests   List of count requests obtained with
                                         tMPI_Isend()/tMPI_Irecv().
     \param[out]     outcount            Number of completed requests
index 87299b8d5be265ec8e27ddd8641ea1e799df3531..60ed4ee12d27ce09c0c8a64325c72906f70b707b 100644 (file)
@@ -94,7 +94,7 @@ class OptionStorageTemplate : public AbstractOptionStorage
         // the declarations are still included for clarity.
         virtual const char *typeString() const = 0;
         virtual int valueCount() const { return static_cast<int>(values_->size()); }
-        /*! \copydoc AbstractOptionStorage::formatValue()
+        /*! \copydoc gmx::AbstractOptionStorage::formatValue()
          *
          * OptionStorageTemplate implements handling of DefaultValueIfSetIndex
          * in this method, as well as checking that \p i is a valid index.
index 70e143220d8a98973fcdd68fc13cb3a03616fdab..357bb382c28982412d6fe30352a0e9ba3507a8b8 100644 (file)
@@ -114,7 +114,9 @@ yyerror(yyscan_t, char const *s);
 #pragma warning(disable: 4065)
 #endif
 
-/* These macros should be used at the beginning and end of each semantic action
+/*! \name Exception handling macros for actions
+ *
+ * These macros should be used at the beginning and end of each semantic action
  * that may throw an exception. For robustness, it's best to wrap all actions
  * that call functions declared outside parser.y should be wrapped.
  * These macros take care to catch any exceptions, store the exception (or
@@ -122,9 +124,12 @@ yyerror(yyscan_t, char const *s);
  * cleanly if necessary.
  * The code calling the parser should use
  * _gmx_sel_lexer_rethrow_exception_if_occurred() to rethrow any exceptions.
+ * \{
  */
+//! Starts an action that may throw exceptions.
 #define BEGIN_ACTION \
     try {
+//! Finishes an action that may throw exceptions.
 #define END_ACTION \
     } \
     catch(const std::exception &ex) \
@@ -134,10 +139,11 @@ yyerror(yyscan_t, char const *s);
         else \
             YYABORT; \
     }
+//!\}
 
 
 /* Line 268 of yacc.c  */
-#line 141 "parser.cpp"
+#line 147 "parser.cpp"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -207,7 +213,7 @@ typedef union YYSTYPE
 {
 
 /* Line 293 of yacc.c  */
-#line 95 "parser.y"
+#line 101 "parser.y"
 
     int                         i;
     real                        r;
@@ -222,7 +228,7 @@ typedef union YYSTYPE
 
 
 /* Line 293 of yacc.c  */
-#line 226 "parser.cpp"
+#line 232 "parser.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -258,7 +264,7 @@ void yypstate_delete ();
 
 
 /* Line 343 of yacc.c  */
-#line 262 "parser.cpp"
+#line 268 "parser.cpp"
 
 #ifdef short
 # undef short
@@ -557,16 +563,16 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   211,   211,   212,   223,   224,   246,   252,   253,   264,
-     276,   282,   288,   294,   300,   310,   318,   319,   329,   330,
-     337,   338,   352,   353,   357,   358,   361,   362,   365,   366,
-     374,   382,   390,   398,   402,   412,   420,   430,   431,   435,
-     442,   449,   459,   473,   482,   494,   501,   511,   517,   523,
-     529,   535,   541,   547,   554,   563,   577,   586,   590,   600,
-     613,   621,   629,   642,   644,   649,   650,   655,   664,   665,
-     666,   670,   671,   673,   678,   679,   683,   684,   686,   690,
-     696,   702,   708,   714,   718,   725,   732,   739,   743,   750,
-     757
+       0,   217,   217,   218,   229,   230,   252,   258,   259,   270,
+     282,   288,   294,   300,   306,   316,   324,   325,   335,   336,
+     343,   344,   358,   359,   363,   364,   367,   368,   371,   372,
+     380,   388,   396,   404,   408,   418,   426,   436,   437,   441,
+     448,   455,   465,   479,   488,   500,   507,   517,   523,   529,
+     535,   541,   547,   553,   560,   569,   583,   592,   596,   606,
+     619,   627,   635,   648,   650,   655,   656,   661,   670,   671,
+     672,   676,   677,   679,   684,   685,   689,   690,   692,   696,
+     702,   708,   714,   720,   724,   731,   738,   745,   749,   756,
+     763
 };
 #endif
 
@@ -1360,218 +1366,218 @@ yydestruct (yymsg, yytype, yyvaluep, scanner)
       case 5: /* "HELP_TOPIC" */
 
 /* Line 1391 of yacc.c  */
-#line 190 "parser.y"
+#line 196 "parser.y"
        { free((yyvaluep->str));                     };
 
 /* Line 1391 of yacc.c  */
-#line 1368 "parser.cpp"
+#line 1374 "parser.cpp"
        break;
       case 8: /* "STR" */
 
 /* Line 1391 of yacc.c  */
-#line 190 "parser.y"
+#line 196 "parser.y"
        { free((yyvaluep->str));                     };
 
 /* Line 1391 of yacc.c  */
-#line 1377 "parser.cpp"
+#line 1383 "parser.cpp"
        break;
       case 9: /* "IDENTIFIER" */
 
 /* Line 1391 of yacc.c  */
-#line 190 "parser.y"
+#line 196 "parser.y"
        { free((yyvaluep->str));                     };
 
 /* Line 1391 of yacc.c  */
-#line 1386 "parser.cpp"
+#line 1392 "parser.cpp"
        break;
       case 25: /* "PARAM" */
 
 /* Line 1391 of yacc.c  */
-#line 191 "parser.y"
+#line 197 "parser.y"
        { if((yyvaluep->str)) free((yyvaluep->str));              };
 
 /* Line 1391 of yacc.c  */
-#line 1395 "parser.cpp"
+#line 1401 "parser.cpp"
        break;
       case 28: /* "CMP_OP" */
 
 /* Line 1391 of yacc.c  */
-#line 190 "parser.y"
+#line 196 "parser.y"
        { free((yyvaluep->str));                     };
 
 /* Line 1391 of yacc.c  */
-#line 1404 "parser.cpp"
+#line 1410 "parser.cpp"
        break;
       case 51: /* "command" */
 
 /* Line 1391 of yacc.c  */
-#line 192 "parser.y"
+#line 198 "parser.y"
        { if((yyvaluep->sel)) _gmx_selelem_free((yyvaluep->sel)); };
 
 /* Line 1391 of yacc.c  */
-#line 1413 "parser.cpp"
+#line 1419 "parser.cpp"
        break;
       case 52: /* "cmd_plain" */
 
 /* Line 1391 of yacc.c  */
-#line 192 "parser.y"
+#line 198 "parser.y"
        { if((yyvaluep->sel)) _gmx_selelem_free((yyvaluep->sel)); };
 
 /* Line 1391 of yacc.c  */
-#line 1422 "parser.cpp"
+#line 1428 "parser.cpp"
        break;
       case 54: /* "help_topic" */
 
 /* Line 1391 of yacc.c  */
-#line 198 "parser.y"
+#line 204 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1431 "parser.cpp"
+#line 1437 "parser.cpp"
        break;
       case 55: /* "selection" */
 
 /* Line 1391 of yacc.c  */
-#line 193 "parser.y"
+#line 199 "parser.y"
        { _gmx_selelem_free_chain((yyvaluep->sel));  };
 
 /* Line 1391 of yacc.c  */
-#line 1440 "parser.cpp"
+#line 1446 "parser.cpp"
        break;
       case 59: /* "string" */
 
 /* Line 1391 of yacc.c  */
-#line 190 "parser.y"
+#line 196 "parser.y"
        { free((yyvaluep->str));                     };
 
 /* Line 1391 of yacc.c  */
-#line 1449 "parser.cpp"
+#line 1455 "parser.cpp"
        break;
       case 60: /* "sel_expr" */
 
 /* Line 1391 of yacc.c  */
-#line 194 "parser.y"
+#line 200 "parser.y"
        { _gmx_selelem_free((yyvaluep->sel));        };
 
 /* Line 1391 of yacc.c  */
-#line 1458 "parser.cpp"
+#line 1464 "parser.cpp"
        break;
       case 62: /* "num_expr" */
 
 /* Line 1391 of yacc.c  */
-#line 194 "parser.y"
+#line 200 "parser.y"
        { _gmx_selelem_free((yyvaluep->sel));        };
 
 /* Line 1391 of yacc.c  */
-#line 1467 "parser.cpp"
+#line 1473 "parser.cpp"
        break;
       case 63: /* "str_expr" */
 
 /* Line 1391 of yacc.c  */
-#line 194 "parser.y"
+#line 200 "parser.y"
        { _gmx_selelem_free((yyvaluep->sel));        };
 
 /* Line 1391 of yacc.c  */
-#line 1476 "parser.cpp"
+#line 1482 "parser.cpp"
        break;
       case 64: /* "pos_expr" */
 
 /* Line 1391 of yacc.c  */
-#line 194 "parser.y"
+#line 200 "parser.y"
        { _gmx_selelem_free((yyvaluep->sel));        };
 
 /* Line 1391 of yacc.c  */
-#line 1485 "parser.cpp"
+#line 1491 "parser.cpp"
        break;
       case 65: /* "method_params" */
 
 /* Line 1391 of yacc.c  */
-#line 195 "parser.y"
+#line 201 "parser.y"
        { _gmx_selexpr_free_params((yyvaluep->param)); };
 
 /* Line 1391 of yacc.c  */
-#line 1494 "parser.cpp"
+#line 1500 "parser.cpp"
        break;
       case 66: /* "method_param_list" */
 
 /* Line 1391 of yacc.c  */
-#line 195 "parser.y"
+#line 201 "parser.y"
        { _gmx_selexpr_free_params((yyvaluep->param)); };
 
 /* Line 1391 of yacc.c  */
-#line 1503 "parser.cpp"
+#line 1509 "parser.cpp"
        break;
       case 67: /* "method_param" */
 
 /* Line 1391 of yacc.c  */
-#line 195 "parser.y"
+#line 201 "parser.y"
        { _gmx_selexpr_free_params((yyvaluep->param)); };
 
 /* Line 1391 of yacc.c  */
-#line 1512 "parser.cpp"
+#line 1518 "parser.cpp"
        break;
       case 68: /* "value_list" */
 
 /* Line 1391 of yacc.c  */
-#line 196 "parser.y"
+#line 202 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1521 "parser.cpp"
+#line 1527 "parser.cpp"
        break;
       case 69: /* "value_list_contents" */
 
 /* Line 1391 of yacc.c  */
-#line 196 "parser.y"
+#line 202 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1530 "parser.cpp"
+#line 1536 "parser.cpp"
        break;
       case 70: /* "basic_value_list" */
 
 /* Line 1391 of yacc.c  */
-#line 197 "parser.y"
+#line 203 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1539 "parser.cpp"
+#line 1545 "parser.cpp"
        break;
       case 71: /* "basic_value_list_contents" */
 
 /* Line 1391 of yacc.c  */
-#line 197 "parser.y"
+#line 203 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1548 "parser.cpp"
+#line 1554 "parser.cpp"
        break;
       case 72: /* "value_item" */
 
 /* Line 1391 of yacc.c  */
-#line 196 "parser.y"
+#line 202 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1557 "parser.cpp"
+#line 1563 "parser.cpp"
        break;
       case 73: /* "basic_value_item" */
 
 /* Line 1391 of yacc.c  */
-#line 197 "parser.y"
+#line 203 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1566 "parser.cpp"
+#line 1572 "parser.cpp"
        break;
       case 74: /* "value_item_range" */
 
 /* Line 1391 of yacc.c  */
-#line 196 "parser.y"
+#line 202 "parser.y"
        { _gmx_selexpr_free_values((yyvaluep->val)); };
 
 /* Line 1391 of yacc.c  */
-#line 1575 "parser.cpp"
+#line 1581 "parser.cpp"
        break;
 
       default:
@@ -1920,14 +1926,14 @@ yyreduce:
         case 2:
 
 /* Line 1806 of yacc.c  */
-#line 211 "parser.y"
+#line 217 "parser.y"
     { (yyval.sel) = NULL; }
     break;
 
   case 3:
 
 /* Line 1806 of yacc.c  */
-#line 213 "parser.y"
+#line 219 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_append_selection((yyvsp[(2) - (2)].sel), (yyvsp[(1) - (2)].sel), scanner);
@@ -1940,14 +1946,14 @@ yyreduce:
   case 4:
 
 /* Line 1806 of yacc.c  */
-#line 223 "parser.y"
+#line 229 "parser.y"
     { (yyval.sel) = (yyvsp[(1) - (2)].sel); }
     break;
 
   case 5:
 
 /* Line 1806 of yacc.c  */
-#line 225 "parser.y"
+#line 231 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = NULL;
@@ -1970,7 +1976,7 @@ yyreduce:
   case 6:
 
 /* Line 1806 of yacc.c  */
-#line 246 "parser.y"
+#line 252 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = NULL;
@@ -1982,14 +1988,14 @@ yyreduce:
   case 7:
 
 /* Line 1806 of yacc.c  */
-#line 252 "parser.y"
+#line 258 "parser.y"
     { (yyval.sel) = NULL; }
     break;
 
   case 8:
 
 /* Line 1806 of yacc.c  */
-#line 254 "parser.y"
+#line 260 "parser.y"
     {
                  BEGIN_ACTION;
                  t_selelem *s, *p;
@@ -2005,7 +2011,7 @@ yyreduce:
   case 9:
 
 /* Line 1806 of yacc.c  */
-#line 265 "parser.y"
+#line 271 "parser.y"
     {
                  BEGIN_ACTION;
                  t_selelem *s, *p;
@@ -2022,7 +2028,7 @@ yyreduce:
   case 10:
 
 /* Line 1806 of yacc.c  */
-#line 277 "parser.y"
+#line 283 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_selection(NULL, (yyvsp[(1) - (1)].sel), scanner);
@@ -2033,7 +2039,7 @@ yyreduce:
   case 11:
 
 /* Line 1806 of yacc.c  */
-#line 283 "parser.y"
+#line 289 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_selection((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].sel), scanner);
@@ -2044,7 +2050,7 @@ yyreduce:
   case 12:
 
 /* Line 1806 of yacc.c  */
-#line 289 "parser.y"
+#line 295 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_assign_variable((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].sel), scanner);
@@ -2055,7 +2061,7 @@ yyreduce:
   case 13:
 
 /* Line 1806 of yacc.c  */
-#line 295 "parser.y"
+#line 301 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_assign_variable((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].sel), scanner);
@@ -2066,7 +2072,7 @@ yyreduce:
   case 14:
 
 /* Line 1806 of yacc.c  */
-#line 301 "parser.y"
+#line 307 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_assign_variable((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].sel), scanner);
@@ -2077,7 +2083,7 @@ yyreduce:
   case 15:
 
 /* Line 1806 of yacc.c  */
-#line 311 "parser.y"
+#line 317 "parser.y"
     {
                  BEGIN_ACTION;
                  _gmx_sel_handle_help_cmd(process_value_list((yyvsp[(2) - (2)].val), NULL), scanner);
@@ -2088,14 +2094,14 @@ yyreduce:
   case 16:
 
 /* Line 1806 of yacc.c  */
-#line 318 "parser.y"
+#line 324 "parser.y"
     { (yyval.val) = NULL; }
     break;
 
   case 17:
 
 /* Line 1806 of yacc.c  */
-#line 320 "parser.y"
+#line 326 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(STR_VALUE);
@@ -2107,14 +2113,14 @@ yyreduce:
   case 18:
 
 /* Line 1806 of yacc.c  */
-#line 329 "parser.y"
+#line 335 "parser.y"
     { (yyval.sel) = (yyvsp[(1) - (1)].sel); }
     break;
 
   case 19:
 
 /* Line 1806 of yacc.c  */
-#line 331 "parser.y"
+#line 337 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_position((yyvsp[(1) - (1)].sel), NULL, scanner);
@@ -2126,14 +2132,14 @@ yyreduce:
   case 20:
 
 /* Line 1806 of yacc.c  */
-#line 337 "parser.y"
+#line 343 "parser.y"
     { (yyval.sel) = (yyvsp[(2) - (3)].sel); }
     break;
 
   case 21:
 
 /* Line 1806 of yacc.c  */
-#line 339 "parser.y"
+#line 345 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_modifier((yyvsp[(2) - (3)].meth), (yyvsp[(3) - (3)].param), (yyvsp[(1) - (3)].sel), scanner);
@@ -2145,63 +2151,63 @@ yyreduce:
   case 22:
 
 /* Line 1806 of yacc.c  */
-#line 352 "parser.y"
+#line 358 "parser.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 23:
 
 /* Line 1806 of yacc.c  */
-#line 353 "parser.y"
+#line 359 "parser.y"
     { (yyval.i) = -(yyvsp[(2) - (2)].i); }
     break;
 
   case 24:
 
 /* Line 1806 of yacc.c  */
-#line 357 "parser.y"
+#line 363 "parser.y"
     { (yyval.r) = (yyvsp[(1) - (1)].r); }
     break;
 
   case 25:
 
 /* Line 1806 of yacc.c  */
-#line 358 "parser.y"
+#line 364 "parser.y"
     { (yyval.r) = -(yyvsp[(2) - (2)].r); }
     break;
 
   case 26:
 
 /* Line 1806 of yacc.c  */
-#line 361 "parser.y"
+#line 367 "parser.y"
     { (yyval.r) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 27:
 
 /* Line 1806 of yacc.c  */
-#line 362 "parser.y"
+#line 368 "parser.y"
     { (yyval.r) = (yyvsp[(1) - (1)].r); }
     break;
 
   case 28:
 
 /* Line 1806 of yacc.c  */
-#line 365 "parser.y"
+#line 371 "parser.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str); }
     break;
 
   case 29:
 
 /* Line 1806 of yacc.c  */
-#line 366 "parser.y"
+#line 372 "parser.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str); }
     break;
 
   case 30:
 
 /* Line 1806 of yacc.c  */
-#line 375 "parser.y"
+#line 381 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_BOOLEAN);
@@ -2214,7 +2220,7 @@ yyreduce:
   case 31:
 
 /* Line 1806 of yacc.c  */
-#line 383 "parser.y"
+#line 389 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_BOOLEAN);
@@ -2227,7 +2233,7 @@ yyreduce:
   case 32:
 
 /* Line 1806 of yacc.c  */
-#line 391 "parser.y"
+#line 397 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_BOOLEAN);
@@ -2240,14 +2246,14 @@ yyreduce:
   case 33:
 
 /* Line 1806 of yacc.c  */
-#line 398 "parser.y"
+#line 404 "parser.y"
     { (yyval.sel) = (yyvsp[(2) - (3)].sel); }
     break;
 
   case 34:
 
 /* Line 1806 of yacc.c  */
-#line 403 "parser.y"
+#line 409 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_comparison((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), (yyvsp[(2) - (3)].str), scanner);
@@ -2259,7 +2265,7 @@ yyreduce:
   case 35:
 
 /* Line 1806 of yacc.c  */
-#line 413 "parser.y"
+#line 419 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_group_by_name((yyvsp[(2) - (2)].str), scanner);
@@ -2272,7 +2278,7 @@ yyreduce:
   case 36:
 
 /* Line 1806 of yacc.c  */
-#line 421 "parser.y"
+#line 427 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_group_by_id((yyvsp[(2) - (2)].i), scanner);
@@ -2284,21 +2290,21 @@ yyreduce:
   case 37:
 
 /* Line 1806 of yacc.c  */
-#line 430 "parser.y"
+#line 436 "parser.y"
     { (yyval.str) = NULL; }
     break;
 
   case 38:
 
 /* Line 1806 of yacc.c  */
-#line 431 "parser.y"
+#line 437 "parser.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str);   }
     break;
 
   case 39:
 
 /* Line 1806 of yacc.c  */
-#line 436 "parser.y"
+#line 442 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_keyword((yyvsp[(2) - (2)].meth), NULL, (yyvsp[(1) - (2)].str), scanner);
@@ -2310,7 +2316,7 @@ yyreduce:
   case 40:
 
 /* Line 1806 of yacc.c  */
-#line 443 "parser.y"
+#line 449 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_keyword((yyvsp[(2) - (3)].meth), process_value_list((yyvsp[(3) - (3)].val), NULL), (yyvsp[(1) - (3)].str), scanner);
@@ -2322,7 +2328,7 @@ yyreduce:
   case 41:
 
 /* Line 1806 of yacc.c  */
-#line 450 "parser.y"
+#line 456 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_keyword((yyvsp[(2) - (3)].meth), process_value_list((yyvsp[(3) - (3)].val), NULL), (yyvsp[(1) - (3)].str), scanner);
@@ -2334,7 +2340,7 @@ yyreduce:
   case 42:
 
 /* Line 1806 of yacc.c  */
-#line 460 "parser.y"
+#line 466 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_method((yyvsp[(2) - (3)].meth), (yyvsp[(3) - (3)].param), (yyvsp[(1) - (3)].str), scanner);
@@ -2346,7 +2352,7 @@ yyreduce:
   case 43:
 
 /* Line 1806 of yacc.c  */
-#line 474 "parser.y"
+#line 480 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_CONST);
@@ -2360,7 +2366,7 @@ yyreduce:
   case 44:
 
 /* Line 1806 of yacc.c  */
-#line 483 "parser.y"
+#line 489 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_CONST);
@@ -2374,7 +2380,7 @@ yyreduce:
   case 45:
 
 /* Line 1806 of yacc.c  */
-#line 495 "parser.y"
+#line 501 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_keyword((yyvsp[(2) - (2)].meth), NULL, (yyvsp[(1) - (2)].str), scanner);
@@ -2386,7 +2392,7 @@ yyreduce:
   case 46:
 
 /* Line 1806 of yacc.c  */
-#line 502 "parser.y"
+#line 508 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_method((yyvsp[(2) - (3)].meth), (yyvsp[(3) - (3)].param), (yyvsp[(1) - (3)].str), scanner);
@@ -2398,7 +2404,7 @@ yyreduce:
   case 47:
 
 /* Line 1806 of yacc.c  */
-#line 512 "parser.y"
+#line 518 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), '+', scanner);
@@ -2409,7 +2415,7 @@ yyreduce:
   case 48:
 
 /* Line 1806 of yacc.c  */
-#line 518 "parser.y"
+#line 524 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), '-', scanner);
@@ -2420,7 +2426,7 @@ yyreduce:
   case 49:
 
 /* Line 1806 of yacc.c  */
-#line 524 "parser.y"
+#line 530 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), '*', scanner);
@@ -2431,7 +2437,7 @@ yyreduce:
   case 50:
 
 /* Line 1806 of yacc.c  */
-#line 530 "parser.y"
+#line 536 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), '/', scanner);
@@ -2442,7 +2448,7 @@ yyreduce:
   case 51:
 
 /* Line 1806 of yacc.c  */
-#line 536 "parser.y"
+#line 542 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(2) - (2)].sel), NULL, '-', scanner);
@@ -2453,7 +2459,7 @@ yyreduce:
   case 52:
 
 /* Line 1806 of yacc.c  */
-#line 542 "parser.y"
+#line 548 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_arithmetic((yyvsp[(1) - (3)].sel), (yyvsp[(3) - (3)].sel), '^', scanner);
@@ -2464,14 +2470,14 @@ yyreduce:
   case 53:
 
 /* Line 1806 of yacc.c  */
-#line 547 "parser.y"
+#line 553 "parser.y"
     { (yyval.sel) = (yyvsp[(2) - (3)].sel); }
     break;
 
   case 54:
 
 /* Line 1806 of yacc.c  */
-#line 555 "parser.y"
+#line 561 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_selelem_create(SEL_CONST);
@@ -2485,7 +2491,7 @@ yyreduce:
   case 55:
 
 /* Line 1806 of yacc.c  */
-#line 564 "parser.y"
+#line 570 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_keyword((yyvsp[(2) - (2)].meth), NULL, (yyvsp[(1) - (2)].str), scanner);
@@ -2497,7 +2503,7 @@ yyreduce:
   case 56:
 
 /* Line 1806 of yacc.c  */
-#line 578 "parser.y"
+#line 584 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_const_position((yyvsp[(2) - (7)].r), (yyvsp[(4) - (7)].r), (yyvsp[(6) - (7)].r));
@@ -2508,14 +2514,14 @@ yyreduce:
   case 57:
 
 /* Line 1806 of yacc.c  */
-#line 586 "parser.y"
+#line 592 "parser.y"
     { (yyval.sel) = (yyvsp[(2) - (3)].sel); }
     break;
 
   case 58:
 
 /* Line 1806 of yacc.c  */
-#line 591 "parser.y"
+#line 597 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_method((yyvsp[(1) - (2)].meth), (yyvsp[(2) - (2)].param), NULL, scanner);
@@ -2527,7 +2533,7 @@ yyreduce:
   case 59:
 
 /* Line 1806 of yacc.c  */
-#line 601 "parser.y"
+#line 607 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_position((yyvsp[(3) - (3)].sel), (yyvsp[(1) - (3)].str), scanner);
@@ -2539,7 +2545,7 @@ yyreduce:
   case 60:
 
 /* Line 1806 of yacc.c  */
-#line 614 "parser.y"
+#line 620 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_variable_ref((yyvsp[(1) - (1)].sel));
@@ -2550,7 +2556,7 @@ yyreduce:
   case 61:
 
 /* Line 1806 of yacc.c  */
-#line 622 "parser.y"
+#line 628 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_variable_ref((yyvsp[(1) - (1)].sel));
@@ -2561,7 +2567,7 @@ yyreduce:
   case 62:
 
 /* Line 1806 of yacc.c  */
-#line 630 "parser.y"
+#line 636 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.sel) = _gmx_sel_init_variable_ref((yyvsp[(1) - (1)].sel));
@@ -2572,35 +2578,35 @@ yyreduce:
   case 63:
 
 /* Line 1806 of yacc.c  */
-#line 643 "parser.y"
+#line 649 "parser.y"
     { (yyval.param) = process_param_list((yyvsp[(1) - (1)].param)); }
     break;
 
   case 64:
 
 /* Line 1806 of yacc.c  */
-#line 645 "parser.y"
+#line 651 "parser.y"
     { (yyval.param) = process_param_list((yyvsp[(1) - (2)].param)); }
     break;
 
   case 65:
 
 /* Line 1806 of yacc.c  */
-#line 649 "parser.y"
+#line 655 "parser.y"
     { (yyval.param) = NULL;              }
     break;
 
   case 66:
 
 /* Line 1806 of yacc.c  */
-#line 651 "parser.y"
+#line 657 "parser.y"
     { (yyvsp[(2) - (2)].param)->next = (yyvsp[(1) - (2)].param); (yyval.param) = (yyvsp[(2) - (2)].param); }
     break;
 
   case 67:
 
 /* Line 1806 of yacc.c  */
-#line 656 "parser.y"
+#line 662 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.param) = _gmx_selexpr_create_param((yyvsp[(1) - (2)].str));
@@ -2612,84 +2618,84 @@ yyreduce:
   case 68:
 
 /* Line 1806 of yacc.c  */
-#line 664 "parser.y"
+#line 670 "parser.y"
     { (yyval.val) = NULL; }
     break;
 
   case 69:
 
 /* Line 1806 of yacc.c  */
-#line 665 "parser.y"
+#line 671 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val);   }
     break;
 
   case 70:
 
 /* Line 1806 of yacc.c  */
-#line 666 "parser.y"
+#line 672 "parser.y"
     { (yyval.val) = (yyvsp[(2) - (3)].val);   }
     break;
 
   case 71:
 
 /* Line 1806 of yacc.c  */
-#line 670 "parser.y"
+#line 676 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;
 
   case 72:
 
 /* Line 1806 of yacc.c  */
-#line 672 "parser.y"
+#line 678 "parser.y"
     { (yyvsp[(2) - (2)].val)->next = (yyvsp[(1) - (2)].val); (yyval.val) = (yyvsp[(2) - (2)].val); }
     break;
 
   case 73:
 
 /* Line 1806 of yacc.c  */
-#line 674 "parser.y"
+#line 680 "parser.y"
     { (yyvsp[(3) - (3)].val)->next = (yyvsp[(1) - (3)].val); (yyval.val) = (yyvsp[(3) - (3)].val); }
     break;
 
   case 74:
 
 /* Line 1806 of yacc.c  */
-#line 678 "parser.y"
+#line 684 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;
 
   case 75:
 
 /* Line 1806 of yacc.c  */
-#line 679 "parser.y"
+#line 685 "parser.y"
     { (yyval.val) = (yyvsp[(2) - (3)].val); }
     break;
 
   case 76:
 
 /* Line 1806 of yacc.c  */
-#line 683 "parser.y"
+#line 689 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;
 
   case 77:
 
 /* Line 1806 of yacc.c  */
-#line 685 "parser.y"
+#line 691 "parser.y"
     { (yyvsp[(2) - (2)].val)->next = (yyvsp[(1) - (2)].val); (yyval.val) = (yyvsp[(2) - (2)].val); }
     break;
 
   case 78:
 
 /* Line 1806 of yacc.c  */
-#line 687 "parser.y"
+#line 693 "parser.y"
     { (yyvsp[(3) - (3)].val)->next = (yyvsp[(1) - (3)].val); (yyval.val) = (yyvsp[(3) - (3)].val); }
     break;
 
   case 79:
 
 /* Line 1806 of yacc.c  */
-#line 691 "parser.y"
+#line 697 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value_expr((yyvsp[(1) - (1)].sel));
@@ -2700,7 +2706,7 @@ yyreduce:
   case 80:
 
 /* Line 1806 of yacc.c  */
-#line 697 "parser.y"
+#line 703 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value_expr((yyvsp[(1) - (1)].sel));
@@ -2711,7 +2717,7 @@ yyreduce:
   case 81:
 
 /* Line 1806 of yacc.c  */
-#line 703 "parser.y"
+#line 709 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value_expr((yyvsp[(1) - (1)].sel));
@@ -2722,7 +2728,7 @@ yyreduce:
   case 82:
 
 /* Line 1806 of yacc.c  */
-#line 709 "parser.y"
+#line 715 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value_expr((yyvsp[(1) - (1)].sel));
@@ -2733,14 +2739,14 @@ yyreduce:
   case 83:
 
 /* Line 1806 of yacc.c  */
-#line 714 "parser.y"
+#line 720 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;
 
   case 84:
 
 /* Line 1806 of yacc.c  */
-#line 719 "parser.y"
+#line 725 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(INT_VALUE);
@@ -2752,7 +2758,7 @@ yyreduce:
   case 85:
 
 /* Line 1806 of yacc.c  */
-#line 726 "parser.y"
+#line 732 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(REAL_VALUE);
@@ -2764,7 +2770,7 @@ yyreduce:
   case 86:
 
 /* Line 1806 of yacc.c  */
-#line 733 "parser.y"
+#line 739 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(STR_VALUE);
@@ -2776,14 +2782,14 @@ yyreduce:
   case 87:
 
 /* Line 1806 of yacc.c  */
-#line 739 "parser.y"
+#line 745 "parser.y"
     { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;
 
   case 88:
 
 /* Line 1806 of yacc.c  */
-#line 744 "parser.y"
+#line 750 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(INT_VALUE);
@@ -2795,7 +2801,7 @@ yyreduce:
   case 89:
 
 /* Line 1806 of yacc.c  */
-#line 751 "parser.y"
+#line 757 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(REAL_VALUE);
@@ -2807,7 +2813,7 @@ yyreduce:
   case 90:
 
 /* Line 1806 of yacc.c  */
-#line 758 "parser.y"
+#line 764 "parser.y"
     {
                  BEGIN_ACTION;
                  (yyval.val) = _gmx_selexpr_create_value(REAL_VALUE);
@@ -2819,7 +2825,7 @@ yyreduce:
 
 
 /* Line 1806 of yacc.c  */
-#line 2823 "parser.cpp"
+#line 2829 "parser.cpp"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3053,7 +3059,7 @@ yypushreturn:
 
 
 /* Line 2067 of yacc.c  */
-#line 766 "parser.y"
+#line 772 "parser.y"
 
 
 static t_selexpr_value *
index 2ff6e3085f5f151d5990ba00e6a380272d7c21a3..bee66d53c89795013fb4b2050c2298e0526f0a6a 100644 (file)
@@ -80,7 +80,7 @@ typedef union YYSTYPE
 {
 
 /* Line 2068 of yacc.c  */
-#line 95 "parser.y"
+#line 101 "parser.y"
 
     int                         i;
     real                        r;
index 57ea0b841cef6c8acaa66fb8a12885f7bcf48320..f279a12ae7154a378b4da0abec779f346a48a39a 100644 (file)
@@ -70,7 +70,9 @@ yyerror(yyscan_t, char const *s);
 #pragma warning(disable: 4065)
 #endif
 
-/* These macros should be used at the beginning and end of each semantic action
+/*! \name Exception handling macros for actions
+ *
+ * These macros should be used at the beginning and end of each semantic action
  * that may throw an exception. For robustness, it's best to wrap all actions
  * that call functions declared outside parser.y should be wrapped.
  * These macros take care to catch any exceptions, store the exception (or
@@ -78,9 +80,12 @@ yyerror(yyscan_t, char const *s);
  * cleanly if necessary.
  * The code calling the parser should use
  * _gmx_sel_lexer_rethrow_exception_if_occurred() to rethrow any exceptions.
+ * \{
  */
+//! Starts an action that may throw exceptions.
 #define BEGIN_ACTION \
     try {
+//! Finishes an action that may throw exceptions.
 #define END_ACTION \
     } \
     catch(const std::exception &ex) \
@@ -90,6 +95,7 @@ yyerror(yyscan_t, char const *s);
         else \
             YYABORT; \
     }
+//!\}
 %}
 
 %union{
index 615385d7a9ae698293a63a6d78df94ccc98a1a55..f3ddf929711c0fcce416ac6d97e742b2f2a8a2bb 100644 (file)
  * \author Teemu Murtola <teemu.murtola@cbr.su.se>
  * \ingroup module_selection
  */
-/*! \internal \file scanner_flex.h
+/*! \cond
+ * \internal \file scanner_flex.h
  * \brief Generated (from scanner.l) header file by Flex.
  *
  * This file contains definitions of functions that are needed in
  * scanner_internal.cpp.
  *
  * \ingroup module_selection
+ * \endcond
  */
 #ifdef HAVE_CONFIG_H
 #include <config.h>
index c0cc9be7186f491e3033be1d6f24f11e8a61afc0..87cc01321dce5617525e4bb8b95fc34ef4a23e7e 100644 (file)
@@ -593,6 +593,6 @@ HelpTopicPointer createSelectionHelpTopic()
     root->registerSubTopic<SimpleHelpTopic<SyntaxHelpText> >();
     return move(root);
 }
-//! \cond
+//! \endcond
 
 } // namespace gmx
index 946351fec9397224da5a7658f671a8c9a24642e5..ad98c260a81d88c4f02752d763d0de8e58b70384 100644 (file)
@@ -398,10 +398,10 @@ if (checker.checkPresent(bHaveVelocities, "Velocities"))
          * \param[in] checkItem  Functor to check an individual item.
          *
          * This method creates a compound checker \c compound within which all
-         * values of the sequence are checked.  Calls checkItem(&compound, *i)
+         * values of the sequence are checked.  Calls \c checkItem(&compound, *i)
          * with that compound for each iterator \c i in the range [begin, end).
-         * \p checkItem should use check*() methods in the passed checker to
-         * check the each value.
+         * \p checkItem should use the various check methods in the passed
+         * checker to check each value.
          *
          * This method can be used to check a sequence made of compound types.
          * Typically \p checkItem will create a compound within the passed