1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd.cpd;
5
6 import net.sourceforge.pmd.PMD;
7
8 import java.io.IOException;
9 import java.io.LineNumberReader;
10 import java.io.Reader;
11 import java.util.ArrayList;
12 import java.util.List;
13
14 public class PHPTokenizer implements Tokenizer {
15
16 public void tokenize(SourceCode tokens, Tokens tokenEntries, Reader input) throws IOException {
17 List lines = new ArrayList();
18 StringBuffer sb = new StringBuffer();
19 LineNumberReader r = new LineNumberReader(input);
20 String currentLine;
21 int lineCount = 0;
22 int count = 0;
23 while ((currentLine = r.readLine()) != null) {
24 lines.add(currentLine);
25 sb.append(currentLine);
26 sb.append(PMD.EOL);
27 for (int i=0;i<currentLine.length(); i++) {
28 char tok =currentLine.charAt(i);
29 if ( !Character.isWhitespace(tok) &&
30 tok != '{' &&
31 tok != '}' &&
32 tok != ';') {
33 count++;
34 tokenEntries.add(new TokenEntry(String.valueOf(tok), count, tokens.getFileName(), lineCount));
35 }
36 }
37 lineCount++;
38 }
39 tokens.setCode(lines);
40 tokenEntries.add(TokenEntry.EOF);
41 }
42 }
This page was automatically generated by Maven