Language.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package de.jplag.cpp;
  2. import java.io.File;
  3. import de.jplag.ErrorConsumer;
  4. import de.jplag.TokenList;
  5. /*
  6. * Leider werden C/C++ nicht geparst, sondern nur gescannt...
  7. */
  8. public class Language implements de.jplag.Language {
  9. private Scanner scanner;
  10. public Language(ErrorConsumer program) {
  11. this.scanner = new Scanner();
  12. this.scanner.setProgram(program);
  13. }
  14. @Override
  15. public int errorCount() {
  16. return this.scanner.errorsCount();
  17. }
  18. @Override
  19. public String[] suffixes() {
  20. String[] res = {".cpp", ".CPP", ".cxx", ".CXX", ".c++", ".C++", ".c", ".C", ".cc", ".CC", ".h", ".H", ".hpp", ".HPP", ".hh", ".HH"};
  21. return res;
  22. }
  23. @Override
  24. public String getName() {
  25. return "C/C++ Scanner [basic markup]";
  26. }
  27. @Override
  28. public String getShortName() {
  29. return "cpp";
  30. }
  31. @Override
  32. public int minimumTokenMatch() {
  33. return 12;
  34. }
  35. @Override
  36. public boolean supportsColumns() {
  37. return false;
  38. }
  39. @Override
  40. public boolean isPreformatted() {
  41. return true;
  42. }
  43. @Override
  44. public boolean usesIndex() {
  45. return false;
  46. }
  47. @Override
  48. public TokenList parse(File dir, String[] files) {
  49. return this.scanner.scan(dir, files);
  50. }
  51. @Override
  52. public boolean hasErrors() {
  53. return this.scanner.hasErrors();
  54. }
  55. @Override
  56. public int numberOfTokens() {
  57. return CPPTokenConstants.NUM_DIFF_TOKENS;
  58. }
  59. }