Language.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package de.jplag.cpp;
  2. import java.io.File;
  3. import de.jplag.ProgramI;
  4. /*
  5. * Leider werden C/C++ nicht geparst, sondern nur gescannt...
  6. */
  7. public class Language implements de.jplag.Language {
  8. private Scanner scanner;
  9. public Language(ProgramI program) {
  10. this.scanner = new Scanner();
  11. this.scanner.setProgram(program);
  12. }
  13. @Override
  14. public int errorsCount() {
  15. return this.scanner.errorsCount();
  16. }
  17. @Override
  18. public String[] suffixes() {
  19. String[] res = { ".cpp", ".CPP", ".cxx", ".CXX", ".c++", ".C++", ".c", ".C", ".cc", ".CC", ".h", ".H",
  20. ".hpp", ".HPP", ".hh", ".HH" };
  21. return res;
  22. }
  23. @Override
  24. public String name() {
  25. return "C/C++ Scanner [basic markup]";
  26. }
  27. @Override
  28. public String getShortName() {
  29. return "cpp";
  30. }
  31. @Override
  32. public int min_token_match() {
  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 de.jplag.TokenList parse(File dir, String[] files) {
  49. return this.scanner.scan(dir, files);
  50. }
  51. @Override
  52. public boolean errors() {
  53. return this.scanner.getErrors();
  54. }
  55. @Override
  56. public int noOfTokens() {
  57. return de.jplag.cpp.CPPToken.numberOfTokens();
  58. }
  59. @Override
  60. public String type2string(int type) {
  61. return de.jplag.cpp.CPPToken.type2string(type);
  62. }
  63. }