Language.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package de.jplag.csharp;
  2. import java.io.File;
  3. import java.util.Arrays;
  4. import de.jplag.ErrorConsumer;
  5. import de.jplag.TokenList;
  6. /**
  7. * C# language with full support of C# 6 features and below.
  8. * @author Timur Saglam
  9. */
  10. public class Language implements de.jplag.Language {
  11. private static final String NAME = "C# 6 Parser";
  12. private static final String SHORT_NAME = "C# 6";
  13. private static final String[] FILE_ENDINGS = new String[] {".cs", ".CS"};
  14. private static final int DEFAULT_MIN_TOKEN_MATCH = 8;
  15. private final CSharpParserAdapter parser;
  16. public Language(ErrorConsumer program) {
  17. parser = new CSharpParserAdapter(program);
  18. }
  19. @Override
  20. public String[] suffixes() {
  21. return FILE_ENDINGS;
  22. }
  23. @Override
  24. public String getName() {
  25. return NAME;
  26. }
  27. @Override
  28. public String getShortName() {
  29. return SHORT_NAME;
  30. }
  31. @Override
  32. public int minimumTokenMatch() {
  33. return DEFAULT_MIN_TOKEN_MATCH;
  34. }
  35. @Override
  36. public TokenList parse(File dir, String[] files) {
  37. return parser.parse(dir, Arrays.asList(files));
  38. }
  39. @Override
  40. public boolean hasErrors() {
  41. return parser.hasErrors();
  42. }
  43. @Override
  44. public boolean supportsColumns() {
  45. return true;
  46. }
  47. @Override
  48. public boolean isPreformatted() {
  49. return true;
  50. }
  51. @Override
  52. public boolean usesIndex() {
  53. return false;
  54. }
  55. @Override
  56. public int numberOfTokens() {
  57. return CSharpTokenConstants.NUM_DIFF_TOKENS;
  58. }
  59. }