Просмотр исходного кода

Adapt parser to the error consumer interface.

Timur Sağlam 4 лет назад
Родитель
Сommit
a2708f7bdb
22 измененных файлов с 42 добавлено и 42 удалено
  1. 5 5
      jplag.frontend-utils/src/main/java/de/jplag/AbstractParser.java
  2. 3 3
      jplag.frontend.chars/src/main/java/de/jplag/chars/Parser.java
  3. 1 1
      jplag.frontend.cpp/src/main/java/de/jplag/cpp/Scanner.java
  4. 2 2
      jplag.frontend.cpp/src/main/javacc/CPP.jj
  5. 1 1
      jplag.frontend.csharp-1.2/src/main/java/de/jplag/csharp/Parser.java
  6. 3 3
      jplag.frontend.java-1.1exp/src/main/java/de/jplag/javax/Parser.java
  7. 2 2
      jplag.frontend.java-1.1exp/src/main/javacc/Java1.1.jj
  8. 2 2
      jplag.frontend.java-1.2/src/main/java/de/jplag/java/Parser.java
  9. 2 2
      jplag.frontend.java-1.5/src/main/java/de/jplag/java15/Parser.java
  10. 3 3
      jplag.frontend.java-1.5/src/main/javacc/Java1.5.jj
  11. 2 2
      jplag.frontend.java-1.7/src/main/java/de/jplag/java17/Parser.java
  12. 1 1
      jplag.frontend.java-1.9/src/main/java/de/jplag/java19/JavacAdapter.java
  13. 2 2
      jplag.frontend.python-3/src/main/java/de/jplag/python3/Parser.java
  14. 1 1
      jplag.frontend.scheme/src/main/java/de/jplag/scheme/Parser.java
  15. 2 2
      jplag.frontend.scheme/src/main/javacc/Scheme.jj
  16. 3 3
      jplag.frontend.text/src/main/java/de/jplag/text/Parser.java
  17. 1 1
      jplag/src/main/java/de/jplag/ErrorCollector.java
  18. 1 1
      jplag/src/main/java/de/jplag/JPlag.java
  19. 2 2
      jplag/src/main/java/de/jplag/Submission.java
  20. 1 1
      jplag/src/main/java/de/jplag/SubmissionSet.java
  21. 1 1
      jplag/src/test/java/de/jplag/NormalComparisonTest.java
  22. 1 1
      jplag/src/test/java/de/jplag/ParallelComparisonTest.java

+ 5 - 5
jplag.frontend-utils/src/main/java/de/jplag/AbstractParser.java

@@ -5,7 +5,7 @@ package de.jplag;
  * @date 22.01.2005
  */
 public abstract class AbstractParser {
-    protected ErrorConsumer program;
+    protected ErrorConsumer errorConsumer;
     protected int errors = 0;
     private int errorsSum = 0;
 
@@ -21,11 +21,11 @@ public abstract class AbstractParser {
         errorsSum += errors;
     }
 
-    public ErrorConsumer getProgram() {
-        return program;
+    public ErrorConsumer getErrorConsumer() {
+        return errorConsumer;
     }
 
-    public void setProgram(ErrorConsumer prog) {
-        this.program = prog;
+    public void setProgram(ErrorConsumer errorConsumer) {
+        this.errorConsumer = errorConsumer;
     }
 }

+ 3 - 3
jplag.frontend.chars/src/main/java/de/jplag/chars/Parser.java

@@ -16,15 +16,15 @@ public class Parser extends AbstractParser implements TokenConstants {
 		struct = new TokenList();
 		errors = 0;
 		for (int i = 0; i < files.length; i++) {
-			getProgram().print(null, "Parsing file " + files[i]);
+			getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!parseFile(dir, files[i]))
 				errors++;
 			struct.addToken(new CharToken(FILE_END, files[i], this));
 		}
 		if (errors == 0)
-			program.print(null, "OK");
+			errorConsumer.print(null, "OK");
 		else
-			program.print(null, errors + " ERROR" + (errors > 1 ? "S" : ""));
+			errorConsumer.print(null, errors + " ERROR" + (errors > 1 ? "S" : ""));
 
 		this.parseEnd();
 		return struct;

+ 1 - 1
jplag.frontend.cpp/src/main/java/de/jplag/cpp/Scanner.java

@@ -16,7 +16,7 @@ public class Scanner extends AbstractParser implements CPPTokenConstants {
 		CPPScanner scanner = null;// will be initialized in Method scanFile
 		for (int i = 0; i < files.length; i++) {
 			actFile = files[i];
-		    getProgram().print(null, "Scanning file " + files[i]);
+		    getErrorConsumer().print(null, "Scanning file " + files[i]);
 			if (!CPPScanner.scanFile(dir, files[i], scanner, this))
 				errors++;
 			struct.addToken(new CPPToken(FILE_END, actFile, 1));

+ 2 - 2
jplag.frontend.cpp/src/main/javacc/CPP.jj

@@ -38,10 +38,10 @@ public class CPPScanner implements CPPTokenConstants {
         try {
               scanner.scan();
         } catch (ParseException e) {
-              scannerX.getProgram().addError("  Parsing Error in '" + fileName + "':\n  " + e.getMessage());
+              scannerX.getErrorConsumer().addError("  Parsing Error in '" + fileName + "':\n  " + e.getMessage());
               return false;
         } catch (TokenMgrError e) {
-              scannerX.getProgram().addError("  Scanning Error in '" + fileName + "':\n  " + e.getMessage());
+              scannerX.getErrorConsumer().addError("  Scanning Error in '" + fileName + "':\n  " + e.getMessage());
               return false;
         }
         return true;

+ 1 - 1
jplag.frontend.csharp-1.2/src/main/java/de/jplag/csharp/Parser.java

@@ -46,7 +46,7 @@ public class Parser extends AbstractParser implements CSharpTokenConstants {
 			// close file
 			fis.close();
 		} catch (Exception e) {
-			getProgram().addError("  Parsing Error in '" + file + "':\n  " + e.toString());
+			getErrorConsumer().addError("  Parsing Error in '" + file + "':\n  " + e.toString());
 			return false;
 		}
 		return true;

+ 3 - 3
jplag.frontend.java-1.1exp/src/main/java/de/jplag/javax/Parser.java

@@ -17,15 +17,15 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 		// in method parseFile(...)
 		for (int i = 0; i < files.length; i++) {
 			actFile = files[i];
-			getProgram().print(null, "Parsing file " + files[i]);
+			getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!JavaParser.parseFile(dir, files[i], parser, this))
 				errors++;
 			struct.addToken(new JavaToken(FILE_END, actFile, 0));
 		}
 		if (errors == 0)
-			program.print(null, "OK");
+			errorConsumer.print(null, "OK");
 		else
-			program.print(null, errors + " ERRORS");
+			errorConsumer.print(null, errors + " ERRORS");
 		this.parseEnd();
 		return struct;
 	}

+ 2 - 2
jplag.frontend.java-1.1exp/src/main/javacc/Java1.1.jj

@@ -48,11 +48,11 @@ public class JavaParser implements JavaTokenConstants {
     try {
       parser.CompilationUnit();
     } catch (ParseException e) {
-      parserX.getProgram().addError("  Parsing Error in '" + fileName + "':\n  "
+      parserX.getErrorConsumer().addError("  Parsing Error in '" + fileName + "':\n  "
                 + e.getMessage());
       return false;
     } catch (TokenMgrError e) {
-      parserX.getProgram().addError("  Scanning Error in '" + fileName
+      parserX.getErrorConsumer().addError("  Scanning Error in '" + fileName
       		+ "':\n  " + e.getMessage());
       return true; //false;		// TODO: Why has this been manually set to true?
     }

+ 2 - 2
jplag.frontend.java-1.2/src/main/java/de/jplag/java/Parser.java

@@ -19,7 +19,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 		struct = new TokenList();
 		errors = 0;
 		for (int i = 0; i < files.length; i++) {
-			getProgram().print(null, "Parsing file " + files[i]);
+			getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!parseFile(dir, files[i]))
 				errors++;
 			System.gc();//Emeric
@@ -51,7 +51,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 			// close file
 			fis.close();
 		} catch (Exception e) {
-			getProgram().addError(
+			getErrorConsumer().addError(
 					"  Parsing Error in '" + file + "':\n" + "  Parse error at line "
 							+ (inputState != null ? "" + inputState.getLine() : "UNKNOWN") + ", column "
 							+ (inputState != null ? "" + inputState.tokColumn : "UNKNOWN") + ": " + e.getMessage());

+ 2 - 2
jplag.frontend.java-1.5/src/main/java/de/jplag/java15/Parser.java

@@ -25,7 +25,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 
 		for (int i = 0; i < files.length; i++) {
 			actFile = files[i];
-			getProgram().print(null, "Parsing file " + files[i]);
+			getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!JavaParser.parseFile(dir, files[i], parser, this))
 				errors++;
 
@@ -44,7 +44,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 		struct.addToken(tok);
 
 		/*
-		 * getProgram().print(null,token.beginLine+"\t"+
+		 * getErrorConsumer().print(null,token.beginLine+"\t"+
 		 * JavaToken.type2string(type)+"\t"+ token.image);
 		 */
 	}

+ 3 - 3
jplag.frontend.java-1.5/src/main/javacc/Java1.5.jj

@@ -153,13 +153,13 @@ public class JavaParser implements JavaTokenConstants
         try {
             parser.CompilationUnit();
         } catch (ParseException e) {
-            parserX.getProgram().addError("  Parsing Error in '" + fileName + "':\n  " + e.getMessage() + "\n");
+            parserX.getErrorConsumer().addError("  Parsing Error in '" + fileName + "':\n  " + e.getMessage() + "\n");
             return false;
         } catch (TokenMgrError e) {
-            parserX.getProgram().addError("  Scanning Error in '" + fileName + "':\n  " + e.getMessage() + "\n");
+            parserX.getErrorConsumer().addError("  Scanning Error in '" + fileName + "':\n  " + e.getMessage() + "\n");
             return false;
         } catch (Exception e) {
-            parserX.getProgram().addError("  General error in '" + fileName + "':\n  " + e.getMessage() + "\n");
+            parserX.getErrorConsumer().addError("  General error in '" + fileName + "':\n  " + e.getMessage() + "\n");
             e.printStackTrace();
             return false;
         }

+ 2 - 2
jplag.frontend.java-1.7/src/main/java/de/jplag/java17/Parser.java

@@ -26,7 +26,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 		struct = new TokenList();
 		errors = 0;
 		for (int i = 0; i < files.length; i++) {
-			getProgram().print(null, "Parsing file " + files[i]);
+			getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!parseFile(dir, files[i]))
 				errors++;
 			System.gc();//Emeric
@@ -62,7 +62,7 @@ public class Parser extends AbstractParser implements JavaTokenConstants {
 			}
 
 		} catch (IOException e) {
-			getProgram().addError("Parsing Error in '" + file + "':\n" + e.getMessage());
+			getErrorConsumer().addError("Parsing Error in '" + file + "':\n" + e.getMessage());
 			return false;
 		}
 

+ 1 - 1
jplag.frontend.java-1.9/src/main/java/de/jplag/java19/JavacAdapter.java

@@ -49,7 +49,7 @@ public class JavacAdapter {
         int errors = 0;
         for (Diagnostic<?> diagItem : diagListen.getDiagnostics()) {
             if (diagItem.getKind() == javax.tools.Diagnostic.Kind.ERROR) {
-                parser.getProgram().addError(diagItem.toString());
+                parser.getErrorConsumer().addError(diagItem.toString());
                 errors++;
             }
         }

+ 2 - 2
jplag.frontend.python-3/src/main/java/de/jplag/python3/Parser.java

@@ -27,7 +27,7 @@ public class Parser extends AbstractParser implements Python3TokenConstants {
         struct = new TokenList();
         errors = 0;
         for (int i = 0; i < files.length; i++) {
-            getProgram().print(null, "Parsing file " + files[i]);
+            getErrorConsumer().print(null, "Parsing file " + files[i]);
             if (!parseFile(dir, files[i])) {
                 errors++;
             }
@@ -64,7 +64,7 @@ public class Parser extends AbstractParser implements Python3TokenConstants {
             }
 
         } catch (IOException e) {
-            getProgram().addError("Parsing Error in '" + file + "':\n" + e.getMessage());
+            getErrorConsumer().addError("Parsing Error in '" + file + "':\n" + e.getMessage());
             return false;
         }
 

+ 1 - 1
jplag.frontend.scheme/src/main/java/de/jplag/scheme/Parser.java

@@ -17,7 +17,7 @@ public class Parser extends AbstractParser implements SchemeTokenConstants {
 		// in method parseFile(...)
 		for (int i = 0; i < files.length; i++) {
 			actFile = files[i];
-		    getProgram().print(null, "Parsing file " + files[i]);
+		    getErrorConsumer().print(null, "Parsing file " + files[i]);
 			if (!SchemeParser.parseFile(dir, files[i], parser, this))
 				errors++;
 			struct.addToken(new SchemeToken(FILE_END, actFile, 1));

+ 2 - 2
jplag.frontend.scheme/src/main/javacc/Scheme.jj

@@ -79,11 +79,11 @@ public class SchemeParser implements SchemeTokenConstants {
         try {
             parser.Program();
         } catch (ParseException e) {
-            parserX.getProgram().addError("  Parsing Error in '" + fileName
+            parserX.getErrorConsumer().addError("  Parsing Error in '" + fileName
                 + "':\n  " + e.getMessage() + "\n");
             return false;
         } catch (TokenMgrError e) {
-            parserX.getProgram().addError("  Scanning Error in '" + fileName
+            parserX.getErrorConsumer().addError("  Scanning Error in '" + fileName
                 + "':\n  " + e.getMessage() + "\n");
             return false;
         }

+ 3 - 3
jplag.frontend.text/src/main/java/de/jplag/text/Parser.java

@@ -54,7 +54,7 @@ public class Parser extends AbstractParser implements TokenConstants {
 		struct = new TokenList();
 		errors = 0;
 		for (int i = 0; i < files.length; i++) {
-			getProgram().print("", "Parsing file " + files[i]);
+			getErrorConsumer().print("", "Parsing file " + files[i]);
 			if (!parseFile(dir, files[i]))
 				errors++;
 			struct.addToken(new TextToken(FILE_END, files[i], this));
@@ -88,7 +88,7 @@ public class Parser extends AbstractParser implements TokenConstants {
 			// close file
 			fis.close();
 		} catch (Exception e) {
-			getProgram().addError("  Parsing Error in '" + file +
+			getErrorConsumer().addError("  Parsing Error in '" + file +
 					"' (line " + (inputState != null ? "" + inputState.getLine()
 					: "") + "):\n  " + e.getMessage());
 			return false;
@@ -111,7 +111,7 @@ public class Parser extends AbstractParser implements TokenConstants {
 			return;
 		runOut = true;
 		errors++;
-		program.print("ERROR: Out of serials!", null);
+		errorConsumer.print("ERROR: Out of serials!", null);
         System.out.println("de.jplag.text.Parser: ERROR: Out of serials!");
 	}
 }

+ 1 - 1
jplag/src/main/java/de/jplag/ErrorCollector.java

@@ -14,7 +14,7 @@ import de.jplag.options.Verbosity;
  */
 public class ErrorCollector implements ErrorConsumer { // TODO TS should be eventually replaced with a true logger/logging manager
 
-    private final List<String> collectedErrors; // List of errors that occurred during the execution of the program.
+    private final List<String> collectedErrors; // List of errors that occurred during the execution of the errorConsumer.
     private final JPlagOptions options;
     private String currentSubmissionName;
 

+ 1 - 1
jplag/src/main/java/de/jplag/JPlag.java

@@ -11,7 +11,7 @@ import de.jplag.strategy.NormalComparisonStrategy;
 import de.jplag.strategy.ParallelComparisonStrategy;
 
 /**
- * This class coordinates the whole program flow.
+ * This class coordinates the whole errorConsumer flow.
  */
 public class JPlag {
     // INPUT:

+ 2 - 2
jplag/src/main/java/de/jplag/Submission.java

@@ -343,10 +343,10 @@ public class Submission implements Comparable<Submission> {
     /**
      * Map all files of this submission to their path relative to the submission directory.
      * <p>
-     * This method is required to stay compatible with `program.language.parse(...)` as it requires the given file paths to
+     * This method is required to stay compatible with `errorConsumer.language.parse(...)` as it requires the given file paths to
      * be relative to the submission directory.
      * <p>
-     * In a future update, `program.language.parse(...)` should probably just take a list of files.
+     * In a future update, `errorConsumer.language.parse(...)` should probably just take a list of files.
      * @param baseFile - File to base all relative file paths on.
      * @param files - List of files to map.
      * @return an array of file paths relative to the submission directory.

+ 1 - 1
jplag/src/main/java/de/jplag/SubmissionSet.java

@@ -55,7 +55,7 @@ public class SubmissionSet {
     /**
      * Retrieve the base code of this collection.
      * @return The base code submission.
-     * @note Asking for a non-existing basecode crashes the program.
+     * @note Asking for a non-existing basecode crashes the errorConsumer.
      * @see #hasBaseCode
      */
     public Submission getBaseCode() {

+ 1 - 1
jplag/src/test/java/de/jplag/NormalComparisonTest.java

@@ -43,7 +43,7 @@ public class NormalComparisonTest extends TestBase {
      * B is a partial copy of that code
      * C is a full copy of that code
      * D is dumb plagiarism, e.g., changed variable names, additional unneeded code, ...
-     * E is just a Hello World Java program
+     * E is just a Hello World Java errorConsumer
      */
     @Test
     public void testPartialPlagiarism() throws ExitException {

+ 1 - 1
jplag/src/test/java/de/jplag/ParallelComparisonTest.java

@@ -47,7 +47,7 @@ public class ParallelComparisonTest extends TestBase {
     /**
      * This case is more complex and consists out of 5 submissions with different plagiarism. A is the original code (coming
      * from an older JPlag version) B is a partial copy of that code C is a full copy of that code D is dumb plagiarism,
-     * e.g., changed variable names, additional unneeded code, ... E is just a Hello World Java program
+     * e.g., changed variable names, additional unneeded code, ... E is just a Hello World Java errorConsumer
      */
     @Test
     public void testPartialPlagiarism() throws ExitException {