View Javadoc
1   /**
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package net.sourceforge.pmd.lang.cpp;
5   
6   import java.io.Reader;
7   
8   import net.sourceforge.pmd.lang.TokenManager;
9   import net.sourceforge.pmd.lang.ast.SimpleCharStream;
10  import net.sourceforge.pmd.lang.cpp.ast.CppParserTokenManager;
11  
12  /**
13   * C++ Token Manager implementation.
14   */
15  public class CppTokenManager implements TokenManager {
16      private final CppParserTokenManager tokenManager;
17  
18      /**
19       * Creates a new C++ Token Manager from the given source code.
20       * @param source the source code
21       */
22      public CppTokenManager(Reader source) {
23          tokenManager = new CppParserTokenManager(new SimpleCharStream(new ContinuationReader(source)));
24      }
25  
26      public Object getNextToken() {
27          return tokenManager.getNextToken();
28      }
29  
30      @Override
31      public void setFileName(String fileName) {
32          CppParserTokenManager.setFileName(fileName);
33      }
34  }