Parser.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package de.jplag.java15;
  2. import java.io.File;
  3. import de.jplag.java15.grammar.JavaParser;
  4. import de.jplag.java15.grammar.Token;
  5. public class Parser extends de.jplag.AbstractParser implements JavaTokenConstants {
  6. private String actFile;
  7. private boolean useMethodSeparators;
  8. private de.jplag.TokenList struct;
  9. public Parser(boolean useMethodSeparators) {
  10. this.useMethodSeparators = useMethodSeparators;
  11. }
  12. public de.jplag.TokenList parse(File dir, String files[]) {
  13. struct = new de.jplag.TokenList();
  14. errors = 0;
  15. JavaParser parser = null; // This will be (re)initialised in parseFile()
  16. for (int i = 0; i < files.length; i++) {
  17. actFile = files[i];
  18. getProgram().print(null, "Parsing file " + files[i] + "\n");
  19. if (!JavaParser.parseFile(dir, files[i], parser, this))
  20. errors++;
  21. struct.addToken(new JavaToken(FILE_END, actFile, -1, -1, -1));
  22. }
  23. this.parseEnd();
  24. return struct;
  25. }
  26. public void add(int type, Token token) {
  27. if (type == SEPARATOR_TOKEN && !useMethodSeparators)
  28. return;
  29. JavaToken tok = new JavaToken(type, actFile, token.beginLine, token.beginColumn, token.image.length());
  30. struct.addToken(tok);
  31. /*
  32. * getProgram().print(null,token.beginLine+"\t"+
  33. * JavaToken.type2string(type)+"\t"+ token.image);
  34. */
  35. }
  36. }