Rewritten Parser/Scanner to package net.sourceforge.phpdt.internal.compiler.parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / problem / DefaultProblem.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/DefaultProblem.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/DefaultProblem.java
deleted file mode 100644 (file)
index 9e433d3..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v0.5 
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package net.sourceforge.phpdt.internal.compiler.problem;
-
-import net.sourceforge.phpdt.core.compiler.IProblem;
-import net.sourceforge.phpdt.internal.compiler.env.ICompilationUnit;
-import net.sourceforge.phpdt.internal.compiler.util.Util;
-
-public class DefaultProblem implements ProblemSeverities, IProblem {
-               
-       private char[] fileName;
-       private int id;
-       private int startPosition, endPosition, line;
-       private int severity;
-       private String[] arguments;
-       private String message;
-       
-       public DefaultProblem(
-               char[] originatingFileName,
-               String message,
-               int id,
-               String[] stringArguments,
-               int severity,
-               int startPosition,
-               int endPosition,
-               int line) {
-
-               this.fileName = originatingFileName;
-               this.message = message;
-               this.id = id;
-               this.arguments = stringArguments;
-               this.severity = severity;
-               this.startPosition = startPosition;
-               this.endPosition = endPosition;
-               this.line = line;
-       }
-
-       public String errorReportSource(ICompilationUnit compilationUnit) {
-               //extra from the source the innacurate     token
-               //and "highlight" it using some underneath ^^^^^
-               //put some context around too.
-
-               //this code assumes that the font used in the console is fixed size
-
-               //sanity .....
-               if ((startPosition > endPosition)
-                       || ((startPosition <= 0) && (endPosition <= 0)))
-                       return Util.bind("problem.noSourceInformation"); //$NON-NLS-1$
-
-               final char SPACE = '\u0020';
-               final char MARK = '^';
-               final char TAB = '\t';
-               char[] source = compilationUnit.getContents();
-               //the next code tries to underline the token.....
-               //it assumes (for a good display) that token source does not
-               //contain any \r \n. This is false on statements ! 
-               //(the code still works but the display is not optimal !)
-
-               //compute the how-much-char we are displaying around the inaccurate token
-               int begin = startPosition >= source.length ? source.length - 1 : startPosition;
-               int relativeStart = 0;
-               int end = endPosition >= source.length ? source.length - 1 : endPosition;
-               int relativeEnd = 0;
-               label : for (relativeStart = 0;; relativeStart++) {
-                       if (begin == 0)
-                               break label;
-                       if ((source[begin - 1] == '\n') || (source[begin - 1] == '\r'))
-                               break label;
-                       begin--;
-               }
-               label : for (relativeEnd = 0;; relativeEnd++) {
-                       if ((end + 1) >= source.length)
-                               break label;
-                       if ((source[end + 1] == '\r') || (source[end + 1] == '\n')) {
-                               break label;
-                       }
-                       end++;
-               }
-               //extract the message form the source
-               char[] extract = new char[end - begin + 1];
-               System.arraycopy(source, begin, extract, 0, extract.length);
-               char c;
-               //remove all SPACE and TAB that begin the error message...
-               int trimLeftIndex = 0;
-               while (((c = extract[trimLeftIndex++]) == TAB) || (c == SPACE)) {
-               };
-               System.arraycopy(
-                       extract,
-                       trimLeftIndex - 1,
-                       extract = new char[extract.length - trimLeftIndex + 1],
-                       0,
-                       extract.length);
-               relativeStart -= trimLeftIndex;
-               //buffer spaces and tabs in order to reach the error position
-               int pos = 0;
-               char[] underneath = new char[extract.length]; // can't be bigger
-               for (int i = 0; i <= relativeStart; i++) {
-                       if (extract[i] == TAB) {
-                               underneath[pos++] = TAB;
-                       } else {
-                               underneath[pos++] = SPACE;
-                       }
-               }
-               //mark the error position
-               for (int i = startPosition;
-                       i <= (endPosition >= source.length ? source.length - 1 : endPosition);
-                       i++)
-                       underneath[pos++] = MARK;
-               //resize underneathto remove 'null' chars
-               System.arraycopy(underneath, 0, underneath = new char[pos], 0, pos);
-
-               return " " + Util.bind("problem.atLine", String.valueOf(line))  //$NON-NLS-2$ //$NON-NLS-1$
-                       + "\n\t" + new String(extract) + "\n\t" + new String(underneath); //$NON-NLS-2$ //$NON-NLS-1$
-       }
-
-       /**
-        * Answer back the original arguments recorded into the problem.
-        * @return java.lang.String[]
-        */
-       public String[] getArguments() {
-
-               return arguments;
-       }
-
-       /**
-        * Answer the type of problem.
-        * @see org.eclipse.jdt.core.compiler.IProblem#getID()
-        * @return int
-        */
-       public int getID() {
-
-               return id;
-       }
-
-       /**
-        * Answer a localized, human-readable message string which describes the problem.
-        * @return java.lang.String
-        */
-       public String getMessage() {
-
-               return message;
-       }
-
-       /**
-        * Answer the file name in which the problem was found.
-        * @return char[]
-        */
-       public char[] getOriginatingFileName() {
-
-               return fileName;
-       }
-
-       /**
-        * Answer the end position of the problem (inclusive), or -1 if unknown.
-        * @return int
-        */
-       public int getSourceEnd() {
-
-               return endPosition;
-       }
-
-       /**
-        * Answer the line number in source where the problem begins.
-        * @return int
-        */
-       public int getSourceLineNumber() {
-
-               return line;
-       }
-
-       /**
-        * Answer the start position of the problem (inclusive), or -1 if unknown.
-        * @return int
-        */
-       public int getSourceStart() {
-
-               return startPosition;
-       }
-
-       /*
-        * Helper method: checks the severity to see if the Error bit is set.
-        * @return boolean
-        */
-       public boolean isError() {
-
-               return (severity & ProblemSeverities.Error) != 0;
-       }
-
-       /*
-        * Helper method: checks the severity to see if the Error bit is not set.
-        * @return boolean
-        */
-       public boolean isWarning() {
-
-               return (severity & ProblemSeverities.Error) == 0;
-       }
-
-       /**
-        * Set the end position of the problem (inclusive), or -1 if unknown.
-        *
-        * Used for shifting problem positions.
-        * @param sourceEnd the new value of the sourceEnd of the receiver
-        */
-       public void setSourceEnd(int sourceEnd) {
-
-               endPosition = sourceEnd;
-       }
-
-       /**
-        * Set the line number in source where the problem begins.
-        * @param lineNumber the new value of the line number of the receiver
-        */
-       public void setSourceLineNumber(int lineNumber) {
-
-               line = lineNumber;
-       }
-
-       /**
-        * Set the start position of the problem (inclusive), or -1 if unknown.
-        *
-        * Used for shifting problem positions.
-        * @param sourceStart the new value of the source start position of the receiver
-        */
-       public void setSourceStart(int sourceStart) {
-
-               startPosition = sourceStart;
-       }
-
-       public String toString() {
-
-               String s = "Pb(" + (id & IgnoreCategoriesMask) + ") "; //$NON-NLS-1$ //$NON-NLS-2$
-               if (message != null) {
-                       s += message;
-               } else {
-                       if (arguments != null)
-                               for (int i = 0; i < arguments.length; i++)
-                                       s += " " + arguments[i]; //$NON-NLS-1$
-               }
-               return s;
-       }
-}
\ No newline at end of file