Parser.java 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package de.jplag.scheme;
  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Set;
  6. import de.jplag.AbstractParser;
  7. import de.jplag.Token;
  8. import de.jplag.TokenType;
  9. public class Parser extends AbstractParser {
  10. private File currentFile;
  11. private List<Token> tokens;
  12. /**
  13. * Creates the parser.
  14. */
  15. public Parser() {
  16. super();
  17. }
  18. public List<Token> parse(Set<File> files) {
  19. tokens = new ArrayList<>();
  20. errors = 0;
  21. for (File file : files) {
  22. currentFile = file;
  23. logger.trace("Parsing file {}", file.getName());
  24. if (!SchemeParser.parseFile(file, null, this)) {
  25. errors++;
  26. }
  27. tokens.add(Token.fileEnd(currentFile));
  28. }
  29. return tokens;
  30. }
  31. public void add(TokenType type, de.jplag.scheme.Token token) {
  32. int length = token.endColumn - token.beginColumn + 1;
  33. tokens.add(new Token(type, currentFile, token.beginLine, token.endLine, length));
  34. }
  35. }