ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/mdParser/SimplePreprocessor.hpp
(Generate patch)

Comparing trunk/src/mdParser/SimplePreprocessor.hpp (file contents):
Revision 1024 by tim, Wed Aug 30 18:42:29 2006 UTC vs.
Revision 2031 by jmichalk, Fri Oct 31 18:40:40 2014 UTC

# Line 6 | Line 6
6   * redistribute this software in source and binary code form, provided
7   * that the following conditions are met:
8   *
9 < * 1. Acknowledgement of the program authors must be made in any
10 < *    publication of scientific results based in part on use of the
11 < *    program.  An acceptable form of acknowledgement is citation of
12 < *    the article in which the program was described (Matthew
13 < *    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 < *    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 < *    Parallel Simulation Engine for Molecular Dynamics,"
16 < *    J. Comput. Chem. 26, pp. 252-271 (2005))
17 < *
18 < * 2. Redistributions of source code must retain the above copyright
9 > * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   *
12 < * 3. Redistributions in binary form must reproduce the above copyright
12 > * 2. Redistributions in binary form must reproduce the above copyright
13   *    notice, this list of conditions and the following disclaimer in the
14   *    documentation and/or other materials provided with the
15   *    distribution.
# Line 37 | Line 28
28   * arising out of the use of or inability to use software, even if the
29   * University of Notre Dame has been advised of the possibility of
30   * such damages.
31 + *
32 + * SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
33 + * research, please cite the appropriate papers when you publish your
34 + * work.  Good starting points are:
35 + *                                                                      
36 + * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37 + * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 + * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39 + * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 + * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   #ifndef MDPARSER_SIMPLEPREPROCESSOR_HPP
# Line 47 | Line 48
48   #include <sstream>
49   #include "utils/StringTokenizer.hpp"
50   #include "utils/Trim.hpp"
51 < #include "utils/OOPSEException.hpp"
51 > #include "utils/OpenMDException.hpp"
52   #include "utils/simError.h"
53  
54  
55   /**
56   * @class SimplePreprocessor
57   * @brief A simple preprocessor.
58 < * @note only supports #include #ifdef, #ifndef, #endif, #define and #undef, c-like multiple line
58 > * @note only supports \#include \#ifdef, \#ifndef, \#endif, \#define and \#undef, c-like multiple line
59   *  comment is not supported, macro substitute is not supported.
60   */
61 < namespace oopse {
61 > namespace OpenMD {
62   class SimplePreprocessor {
63      public:
64          bool preprocess(std::istream& myStream, const std::string& filename, int startingLine, ostream& os) {
# Line 82 | Line 83 | class SimplePreprocessor {
83              //    painCave.isFatal = 1;
84              //    simError();
85              //    
86 <            //    throw OOPSEException(ss.str());                
86 >            //    throw OpenMDException(ss.str());                
87              //}
88              int lineNo = startingLine;
89              os << "#line " << lineNo << " \"" << filename << "\"\n";
90 <            const int bufferSize = 1024;
90 >            const int bufferSize = 8192;
91              char buffer[bufferSize];
92              while(myStream.getline(buffer, bufferSize)) {
93                ++lineNo;
# Line 94 | Line 95 | class SimplePreprocessor {
95                if (!line.empty() && line[0] == '#') {
96                      StringTokenizer tokenizer(line.substr(1, line.length()));
97                      std::vector<std::string> tokens = tokenizer.getAllTokens();
98 <                    if (tokens.size() < 1 ) {
98 >                    if (tokens.empty()) {
99                          return false;
100                      }
100                    std::string keyword = tokens[0];
101                      if (tokens[0] == "endif") {
102                          ifStates.pop();
103                          if (ifStates.empty()) {
# Line 113 | Line 113 | class SimplePreprocessor {
113                              std::ifstream includeStream(includeFilename.c_str());
114                              if (!includeStream.is_open()) {
115                                  std::stringstream ss;
116 <                                ss << "Can not open " << filename << " for preprocessing\n";
117 <                                throw OOPSEException(ss.str());
116 >                                ss << "Can not open " << includeFilename << " for preprocessing\n";
117 >                                throw OpenMDException(ss.str());
118                              }
119                              
120                              bool ret = subPreprocessor.doPreprocess(includeStream, includeFilename, 1, os, defineSet, ifStates);

Comparing trunk/src/mdParser/SimplePreprocessor.hpp (property svn:keywords):
Revision 1024 by tim, Wed Aug 30 18:42:29 2006 UTC vs.
Revision 2031 by jmichalk, Fri Oct 31 18:40:40 2014 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines